Преобразование времени эпохи в GMT Date Time Javascript

В настоящее время я использую момент js в своем приложении и не могу понять, как преобразовать время эпохи в дату по Гринвичу. Предоставление моего кода ниже:

click: (event) => {
   console.info(moment.utc(event.point.category).toDate());
}

event.point.category предоставляет время эпохи, которое я хочу преобразовать в объект даты и времени по Гринвичу, но приведенный выше код преобразует его в объект даты местного часового пояса.

Например 1606262400000 преобразуется во вторник, 24 ноября 2020 г., 19:00:00 по Гринвичу-0500 (восточное стандартное время) вместо даты по Гринвичу, которая приходится на среду, 25 ноября 2020 г., 00:00.

Из документации момента: moment.utc(event.point.category).format() делает то, что вы ожидаете. momentjs.com/guides/#/parsing/local-utc-zone

Parikshith Kedilaya M 15.12.2020 08:01

@ParikshithKedilayaM Спасибо за ваш комментарий, но format () обеспечивает вывод в виде строки, и я ищу объект даты и времени javascript.

rahul 15.12.2020 08:10
Поведение ключевого слова "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
2
483
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Я считаю, что все, что вам не хватает, это toUTCString().

Временная метка эпохи будет одинаковой для вторника, 24 ноября 2020 г., 19:00:00 GMT-0500 (восточное стандартное время), и для среды, 25 ноября 2020 г., 00:00:00 по Гринвичу.

click: (event) => {
   console.info(moment.utc(event.point.category).toDate().toUTCString());
}

Чтобы остаться объектом Date, используйте moment.utc().format()

Я попробовал, как вы предложили, но .format() возвращает вывод в виде строки «2020-11-25T00:00:00Z». Я ищу объект даты и времени по Гринвичу.

rahul 15.12.2020 08:12

@rahul В этом случае я настоятельно рекомендую вам использовать другие дополнительные библиотеки, такие как momentjs.com/timezone или moment.github.io/luxon, чтобы помочь. Я лично использую Luxon, по сути, как moment.js и moment-timezone, упакованные вместе.

IcyBloom 15.12.2020 08:54
Ответ принят как подходящий

Вы должны получить смещение (UTC) (в минутах) клиента для правильного времени

click: (event) => {
  const offset = new Date().getTimezoneOffset(); 
  const targetTime = moment.utc(event.point.category).toDate();
  const offsetTime = new Date(targetTime.getTime() + offset * 60 * 1000);
  console.info(offsetTime);
}
    

Вы можете попробовать что-то вроде этого,

click: (event) => {
   console.info(moment(moment.utc(event.point.category).toISOString()).utc());
}

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