Преобразуйте эти строки времени / даты по Гринвичу в время / дату по Гринвичу с помощью moment.js

У меня есть две строки, которые представляют дату / время в среднем времени по Гринвичу (GMT), которое я хочу для преобразования в их эквивалент всемирного координированного времени (или UTC).

  1. 2019-11-01 09:58
  2. 2019-10-01 08:58

Для первой строки время должно оставаться таким же при преобразовании в UTC, как Переход на летнее время (DST) не используется в ноябре.

В то время как время из второй строки должно измениться на 1 час раньше при преобразовании в UTC, поскольку летнее время используется в начале октября.

Я хотел бы преобразовать обе эти строки с помощью moment.js и moment-timezone.js

До сих пор я безуспешно пробовал следующее, какие-либо предложения?

var format = 'D MMMM Y HH:mm';

console.log(
  "First momement() call should return value with 09:58 and next one with 08:58': ",'\n',
  moment("2019-11-01 09:58", 'YYYY-MM-DD HH:mm').tz('GMT').utc().format(format),'\n',
  moment("2019-10-01 09:58", 'YYYY-MM-DD HH:mm').tz('GMT').utc().format(format)
);

console.log(
  "First momement() call should return value with 09:58 and next one with 08:58': ",'\n',
  moment.tz("2019-11-01 09:58", 'YYYY-MM-DD HH:mm',"GMT").utc().format(format),'\n',
  moment.tz("2019-10-01 09:58", 'YYYY-MM-DD HH:mm',"GMT").utc().format(format)
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.5/moment-timezone-with-data-2010-2020.min.js"></script>


person Holly    schedule 31.10.2019    source источник
comment
Между ними нет значимой разницы. Никаких изменений для летнего времени: они всегда в одно и то же время. Один является часовым поясом, а другой - стандартным, но они относятся к одному и тому же времени.   -  person Jared Smith    schedule 31.10.2019


Ответы (1)


Ах, я узнал, что это было. Вместо того, чтобы использовать GMT для его преобразования, мне нужно было использовать местоположение / место часового пояса.

var format = 'D MMMM Y HH:mm';

console.log(
  "First momement() call should return value with 09:58 and next one with 08:58': ",'\n',
  moment.tz("2019-11-01 09:58", 'YYYY-MM-DD HH:mm','Europe/London').utc().format(format),'\n',
  moment.tz("2019-10-01 09:58", 'YYYY-MM-DD HH:mm','Europe/London').utc().format(format)
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.5/moment-timezone-with-data-2010-2020.min.js"></script>

person Holly    schedule 31.10.2019