Хобрук: Ваш путь к мастерству в программировании

Moment.js: время не основано на времени компьютера

У меня есть список дат/времени. С moment.js они были преобразованы в такие формулировки, как прошлое, сегодня, будущее и так далее.

Моя проблема в том, что это измеряется временем/датой моего компьютера. Поэтому, если я меняю свое время или кто-то находится в другом часовом поясе, формулировки были неправильными.

Есть ли решение для использования автоматического центрального времени и/или часовых поясов?

Вот Codepen: https://codepen.io/anon/pen/QRwdvj

HTML:

<div class="timetracker">05.05.2019 17:45</div>
<div class="timetracker">06.05.2019 17:45</div>
<div class="timetracker">07.05.2019 17:45</div>
<div class="timetracker">08.05.2019 17:45</div>
<div class="timetracker">09.05.2019 17:45</div>

JS

$(document).ready(function() {
  $('.timetracker').html((index, html) => {

    let date = moment(html, "DD.MM.YYYY HH:mm", true),
      now = moment(),
      today = moment().endOf('day'),
      today1 = moment().add(1, 'day').endOf('day'),
      today2 = moment().add(2, 'day').endOf('day'),
      today3 = moment().add(3, 'day').endOf('day'),
      minutes = now.diff(date, "minutes"),
      hours = now.diff(date, "hours"),
      days = now.diff(date, "days"),
      weeks = now.diff(date, "weeks"),
      result = "";

      if (minutes >= 0 && minutes <= 110) {
        result = "right now";
      }
      else if (minutes > 110) {
        result = "past";
      }
      else if (date < today ) {
        result = "today";
      }
      else if (date < today1) {
        result = "future";
      }

    return result;
  });

});
06.05.2019

  • Возможный дубликат Как создать время в определенный часовой пояс с moment.js 06.05.2019
  • К сожалению, нет, потому что время должно быть преобразовано автоматически в зависимости от часового пояса пользователя. 07.05.2019
  • Я думаю, что решение состоит в том, чтобы изменить дату UTC и изменить код: let date = moment(moment.utc(html, DD.MM.YYYY HH:mm, true)).local(), - update codepen: codepen.io/anon/pen/QRwdvj 07.05.2019

Ответы:


1

Решение:

$(document).ready(function() {
  $('.timetracker').html((index, html) => {

    let date = moment(moment.utc(html, "DD.MM.YYYY HH:mm", true).subtract(moment.duration("02:00:00"))).local(),
      now = moment(),
      minutes = now.diff(date, "minutes");
    return minutes;
  });

});

Теперь это преобразует utc во время cet (вычитая 2 часа) и основывая его на местном часовом поясе.

https://codepen.io/anon/pen/vwEwoR

07.05.2019
Новые материалы

Прогресс в технологии Трансформеров часть 3
Многомасштабный управляющий сигнальный преобразователь для бесфазного синтеза движения (arXiv) Автор: Линтао Ван , Кун Ху , Лей Бай , Юй Дин , Ваньли Оуян , Чжиюн Ван . Аннотация:..

Представляем поддержку компонентов Vue.js. Мгновенный HMR и многое другое.
Хотя у FuseBox уже был плагин Vue, он был базовым и не имел многих функций, которые делали работу с Vue.js такой приятной. Однако с этим выпуском мы рады сообщить, что в FuseBox..

Приключения в Javascript, часть 1
Я продолжаю думать о том, чтобы писать больше, но чем больше я думаю об этом, тем меньше я это делаю. Итак, сегодня я перестал думать и начал писать. Отсюда можно только спускаться… В..

Понимание дженериков в TypeScript: подробное руководство
Введение TypeScript, строго типизированный надмножество JavaScript, хорошо известен своей способностью улучшать масштабируемость, удобочитаемость и ремонтопригодность приложений. Одной из..

Учебные заметки JavaScript Object Oriented Labs
Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..

Разбор строк запроса в vue.js
Иногда вам нужно получить данные из строк запроса, в этой статье показано, как это сделать. В жизни каждого дизайнера/разработчика наступает момент, когда им необходимо беспрепятственно..

Предсказание моей следующей любимой книги 📚 Благодаря данным Goodreads и машинному обучению 👨‍💻
«Если вы не любите читать, значит, вы не нашли нужную книгу». - J.K. Роулинг Эта статья сильно отличается от тех, к которым вы, возможно, привыкли . Мне очень понравилось поработать над..