Как проверить, если дата до или после времени локали - PullRequest
0 голосов
/ 20 марта 2020

Я работаю над новостным приложением.

Читатели будут получать новости рядом с их местом, если вы находитесь в Париже, ваш местный часовой пояс Europe/Paris, и мы выпускаем новости в 9:00 каждое утро.

Мы хотим разрешить before 9am публикация

Как проверить, является ли 9am Europe/Paris после или равным new Date() (независимо от того, какая клиентская зона) в JavaScript?

  • В этом конце я добавлю смещение -1 часа, чтобы заблокировать публикацию новостей в 8:00 * 10101 * * 10101 у нас уже есть эта проверка на стороне сервера, в основном для оповещения Пользователь, который будет размещен на следующий день

Ответы [ 2 ]

0 голосов
/ 20 марта 2020

Вы можете использовать момент-часовой пояс

moment.tz("09:00","HH:mm","Europe/Paris").isSameOrAfter(new Date())
0 голосов
/ 20 марта 2020

При работе с несколькими часовыми поясами. Вы всегда должны сравнивать в UT C (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCHours). Идея такова:

  1. Использовать «новую дату (19 августа 1975 г., 09:00:00 GMT + 01: 00»); чтобы создать текущее время в часовом поясе Парижа.
  2. Затем используйте "date.getUTCHours ();" чтобы получить часы в UT C
  3. Затем сравните это значение с часами часового пояса клиента (в UT C).

var parisTime = new Date('March 20, 2020 09:00:00 GMT+01:00');
var parisInUTC = parisTime.getUTCHours();

var ukTime = new Date();
var ukInUTC = ukTime.getUTCHours();

console.log(parisTime);
console.log(parisInUTC);
console.log(ukTime);
console.log(ukInUTC);
console.log(ukInUTC < parisInUTC);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...