04.11.2022, 21:58
|
|
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,750
|
|
Сообщение от Тапочек
|
(сделать псевдорандом - картинки показываются не 1,2,3,4,5... а 3,1,5,4,2 - это не проблема)
|
Какая разница? Разместите урл картинок в другом порядке.
Требуется ведь, что бы ВСЕ пользователи в какой то день видели одну и ту же определенную картинку. Если каждый пользователь в этот день будет независимо от других считать рандом, то картинки у всех будут разные.
Значит либо строго определенная цикличность, скрипт у каждого пользователя должен вычислять один и тот же номер картинки для данного дня. Либо это должен делать сервер - вычислять номер, для каждого дня разный но одинаковый для всех пользователей.
|
|
04.11.2022, 21:59
|
|
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,750
|
|
Сообщение от Тапочек
|
Только вот вместо картинки нужна картинка-ссылка. Как это сделать?
|
Что такое картинка ссылка?
|
|
04.11.2022, 22:01
|
|
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,750
|
|
Сообщение от Тапочек
|
А как сделать, чтобы картинка менялась раз неделю, раз в месяц и раз в год? По аналогии с "фото недели" и "фото месяца"
|
Аналогично. Получать номер недели или номер месяца от начала года.
Последний раз редактировалось voraa, 04.11.2022 в 22:04.
|
|
04.11.2022, 22:32
|
Интересующийся
|
|
Регистрация: 02.11.2022
Сообщений: 23
|
|
Сообщение от voraa
|
Какая разница? Разместите урл картинок в другом порядке.
|
Да, так и сделаю, в принципе - выход. Я в этой теме не сильно подкован, сами понимаете
Сообщение от voraa
|
Что такое картинка ссылка?
|
<a href=index.htm><img scr="img.jpg"></a>
Примерно так
Сообщение от voraa
|
Аналогично. Получать номер недели или номер месяца от начала года.
|
Я всё равно не понимаю, извините
А скрипт (у меня) не работает, просто пустая страница. Если что - вот код:
<html>
<head>
<title>Страница</title>
</head>
<body>
<script>
const picurls = [
'/images/1.jpg',
'/images/2.jpg',
'/images/3.jpg',
];
const now = Date.now(); // мс с 01.01.1970
const msinday = 1000*60*60*24; // мс в сутках
const nowDay = Math.trunc(now/msinday); // дней с 01.01.1970
const ind = nowDay % picurls.length;
const url = picurls[ind];
</script>
</body>
</html>
|
|
04.11.2022, 22:50
|
|
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,750
|
|
Так я написал только как урл получать.
Откуда же я знаю куда вам надо его запихивать?
Где тот img, куда его надо запихнуть?
Или я всю страницу формироввать должен?
|
|
04.11.2022, 22:54
|
|
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,750
|
|
<html>
<head>
<title>Страница</title>
</head>
<body>
<a href=index.htm><img id='pd'></a>
<script>
const picurls = [
'/images/1.jpg',
'/images/2.jpg',
'/images/3.jpg',
];
const now = Date.now(); // мс с 01.01.1970
const msinday = 1000*60*60*24; // мс в сутках
const nowDay = Math.trunc(now/msinday); // дней с 01.01.1970
const ind = nowDay % picurls.length;
const url = picurls[ind];
document.getElementById('pd').src = url
</script>
</body>
</html>
|
|
04.11.2022, 22:57
|
|
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,750
|
|
Сообщение от voraa
|
Аналогично. Получать номер недели или номер месяца от начала года.
|
Получение номера дня, недели и месяца от 01.01.1970
const picurls = [
'http://serv/pic1.jpg',
'http://serv/pic2.jpg',
...
'http://serv/picN.jpg',
];
const now = Date.now(); // мс с 01.01.1970
const msinday = 1000*60*60*24; // мс в сутках
const nDay = Math.trunc(now/msinday); // дней с 01.01.1970
const nWeek = Math.trunc((nDay - 4)/7); // недель с 01.01.1970 (переключается в понедельник)
const year = new Date (now).getFullYear()
const month = new Date (now).getMonth()
const nMonth = (year - 1970)*12 + month // мeсяцев с 01.01.1970
const indDay = nDay % picurls.length;
const indWeek = nWeek % picurls.length;
const indMonth = nMonth % picurls.length;
|
|
04.11.2022, 22:58
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,120
|
|
новая картинка каждый день
Тапочек,
<!DOCTYPE html>
<html>
<head>
<title>Страница</title>
</head>
<body>
<img src="" class="pic">
<script>
const picurls = [ //порядок картинок зависит только от вас, тасуйте как хотите
'https://picsum.photos/300/100?1',
'https://picsum.photos/300/100?2',
'https://picsum.photos/300/100?3',
'https://picsum.photos/300/100?4',
'https://picsum.photos/300/100?5',
'https://picsum.photos/300/100?6',
'https://picsum.photos/300/100?7'
];
const now = Date.now() -(new Date().getTimezoneOffset()) * 60000;
// мс с 01.01.1970
const msinday = 1000 * 60 * 60 * 24; // мс в сутках
const nowDay = Math.trunc(now / msinday); // дней с 01.01.1970
const ind = nowDay % picurls.length;
const url = picurls[ind];
document.querySelector(".pic").src = url;
</script>
</body>
</html>
Последний раз редактировалось рони, 04.11.2022 в 23:39.
|
|
04.11.2022, 23:29
|
|
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,750
|
|
Сообщение от voraa
|
const now = Date.now(); // мс с 01.01.1970
|
Вернее будет так
const now = Date.now() -(new Date().getTimezoneOffset()) * 60000;
Что бы день менялся в 00:00:00 по местному времени.
|
|
05.11.2022, 01:12
|
Интересующийся
|
|
Регистрация: 02.11.2022
Сообщений: 23
|
|
Voraa, да, коряво объяснил. Мне нужно, чтобы по клику на картинку открывалась ссылка (на каждую картинку своя ссылка). В вашем скрипте только ссылка на картинку ('http://serv/pic1.jpg'), она не кликабельна, то есть, она не ссылка, а просто картинка
рони, если менять часы системные часы, то вроде ничего не меняется. Хотя наступил новый день и картинка сменилась... Не понимаю, как это происходит 0_0
|
|
|
|