HTML или Javascript для переключения URL в определенное время

Я из Германии, извините за мой английский.

Я ищу простой код HTML или Javascript для переключения на другой URL-адрес в определенное время.

Я запускаю целевую страницу, предложение которой закрывается, например, 16 апреля в десять часов. Мне нужен небольшой скрипт или код, который направляет на другой URL-адрес, когда öfter будет закрыт.

Я благодарен за любую помощь.

С наилучшими пожеланиями Марко

settimeout для запуска каждую секунду, которая проверяет время и меняет location.href, когда таймер заканчивается - остерегайтесь различий в часовых поясах, он работает на клиенте - используйте время utc

Nikki9696 09.04.2021 23:20

вы действительно хотите вызывать функцию 86400 раз в день?

DCR 09.04.2021 23:22

Вам нужна одна или обе из двух разных вещей: 1) пользователь прибывает на целевой странице после крайнего срока. 2) пользователь в данный момент просматривает страницу, и срок истек. №1 лучше всего обрабатывать на бэкэнде, №2 будет обрабатываться javascript внутри страницы. Вы ищете решение для №1, №2 или обоих?

Stephen P 10.04.2021 00:03
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
3
44
4

Ответы 4

Вот ваш сценарий, основанный на указанном вами времени. По истечении указанного времени ссылка будет изменена автоматически.

"https://jsfiddle.net/rounak1/2pxLu5df/2/"

Если у вас есть рабочий пример, чтобы продемонстрировать, что у вас должен быть настоящий ссылка на сайт, не заставляйте нас копировать и вставлять. У вас также должен быть соответствующий код в вашем ответе, желательно как фрагмент стека. Ответы, содержащие только ссылки, со временем ухудшаются. Ответ также должен включать объяснение кода и того, как он решает проблему.

Stephen P 10.04.2021 00:07

вот код

  let d1 = new Date()
    var d2 = new Date('2021-04-16 22:00:00.00');
    if (d1 > d2) {
        window.location = 'https://www.google.com/'
    }

Я считаю, что с этой проблемой лучше справляется ваш бэкэнд, который может перенаправить пользователя на другую страницу до ее загрузки, поскольку, если вы сделаете это в javascript, страница должна будет загрузиться первой.

Однако, поскольку вы хотите, чтобы это было реализовано в Javascript, вы можете сделать что-то вроде ниже:

var time = moment("16/04/2021 10:00", "DD/MM/YYYY HH:mm");
var now = new Date();
if (time > now) {
    window.location.replace("replace with your url"); // Without allowing the user to hit the back button
}

В приведенном выше примере time сохраняет дату и время, когда предложение заканчивается, в формате, заключенном в виде строки (читайте об этом здесь: https://momentjs.com/docs/#/parsing/string-format/). Это сравнивается со временем now для реализации перенаправления.

Подробнее о редиректе здесь: https://www.w3schools.com/howto/howto_js_redirect_webpage.asp

Вышеупомянутое требует использования библиотеки moment.js, которую вы можете найти здесь: https://momentjs.com/

Если у человека загружена целевая страница и он ее просматривает, и вы хотите отправить его по другому URL-адресу, когда предложение закрывается, вы можете рассчитать, сколько времени до этого произойдет, когда он перейдет на целевую страницу, а затем отправить его на новый URL, когда наступит это время.

setTimeout будет запускать функцию после истечения таймера, и эта функция может изменить window.location, отправив их на новый URL.

Когда целевая страница грузы получает текущее время и время истечения срока действия предложения:

let now = new Date();
let expires = new Date('2021-04-16 22:00:00');

Вычитание дает вам количество миллисекунд до истечения времени истечения, что удобно, потому что это то, что функция setTimeout хочет для своего параметра «задержки».

Подробно это могло бы выглядеть так:

const now = new Date();
const expires = new Date('2021-04-16 22:00:00');
const delay = expires - now;
window.setTimeout(function() {
    window.location = 'https://example.com/';
}, delay);
<div>
<p>This is the landing page</p>
</div>

Этот цикл не ожидает истечения времени, о чем DCR предупреждает в комментарии; он просто устанавливает таймер, о котором потом заботится браузер.

Вся математика может быть свернута без использования переменных, поэтому она становится
window.setTimeout(function() {...etc...}, new Date('2021-04-16 22:00:00') - new Date());

Другие вопросы по теме