Как я могу разобрать простую строку даты и дать JavaScript знать, что это фактически дата UTC? В настоящее время, если я new Date('2015-08-27')
она преобразует ее в мой часовой пояс.
JavaScript - Parse UTC Date
Ответ 1
Вы можете добавить "T00: 00: 00.000Z", чтобы указать часовой пояс (Z обозначает UTC)
new Date('2015-08-27' + 'T00:00:00.000Z')
Обратите внимание, что новая дата ('2015-08-27') обрабатывается по-разному в ES5 (UTC) и ES6 (Local), поэтому вы не можете ожидать, что какая-либо коррекция будет работать последовательно, если вы планируете жестко ее кодировать (т.е. не делать этого)
Кроме того, обратите внимание, что ваш console.log
может показать вам локальное время, соответствующее времени UTC, на которое оценивается выражение (которое, как правило, выбрасывает вас, если вы ожидаете, что UTC будет в конце для выражения, которое будет оцениваться по времени UTC и ваш локальный часовой пояс в конце для тех, кто оценивает ваше местное время). Например
new Date('2015-08-27T00:00:00.000Z')
может показать
Thu Aug 27 2015 1:00:00 GMT+100
который является таким же, как
Thu Aug 27 2015 00:00:00 UTC
Ответ 2
Вот что я буду делать.
var current = new Date();
var utcDate = new Date(current.getTime() + current.getTimezoneOffset() * 60000);