Неверная дата - JavaScript время по Гринвичу - PullRequest
0 голосов
/ 13 января 2020

Я пытаюсь запустить всплывающее окно на моем сайте только в течение указанных c часов. Таким образом, я сделал этот код, но я получил ошибку в консоли «Неверная дата». Мне нужно установить всплывающее окно на лондонское время. Что может быть не так?

jQuery(document).ready(function($){

var date = new Date().toLocaleString("en-GB", {timeZone: "Europe/London"});
date = new Date(date);

var curHr = date.getHours();
var minutes = 1;

if ((curHr > 16 && curHr < 24) || (curHr > 0 && curHr < 8)) {
    date.setTime(date.getTime() + (minutes * 60 * 1000));

    var active = Cookies.get('active');
    if (active == 'yes') {
      return false; // cookie active do nothing
    } else { //trigger popup and set a cookie
      setTimeout(function() {
        $(".fancybox").eq(0).trigger('click');
      }, 500);
      $(".fancybox")
        .attr('rel', 'group')
        .fancybox({
          padding: 0,
          width: 530,
          height: 550,
          scrolling: 'auto'
        });
    }
    Cookies.set('active', 'yes', {
      expires: 1 / 1440 // set to 1 minute.
    });
}
console.log(date);
});

1 Ответ

0 голосов
/ 13 января 2020
var date = new Date().toLocaleString("en-GB", {timeZone: "Europe/London"});
date = new Date(date); // Invalid Date since date is like  "13/01/2020, 02:36:57"

Новая дата будет принимать строку в формате YYYY-MM-DD или YYYY-MM-DDTHH:MM:SSZ (примеры форматов в ISO)

Попробуйте изменить формат строки и попробуйте.

var date = new Date().toLocaleString("en-GB", {timeZone: "Europe/London"});
date = new Date(date); // Not working

var date = new Date().toLocaleString("en-US", {timeZone: "Europe/London"});
date = new Date(date); // Working

var date = new Date().toLocaleString("en-UK", {timeZone: "Europe/London"});
date = new Date(date); // Working
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...