Как преобразовать дату по Гринвичу в GMT Unix TimeStamp с помощью JS?

Я знаю, что есть различные способы, с помощью которых мы можем преобразовать дату и время в временную метку Unix.

Но проблема в том, что когда мы конвертируем значение времени GMT Date в временную метку Unix, тогда оно показывает значение временной метки в соответствии со значением моего местного часового пояса, то есть Asia / Kolkata

Например: Дата и время GMT: 2018-08-21 11:37:56 Итак, когда я конвертирую его в метку времени Unix, она возвращается следующим образом:

var t = new Date('2018-08-21 11:37:56').getTime() / 1000;
console.log(t); // 1534831676

Я ищу 1534851476, который является значением в соответствии с часовым поясом GMT.

что является меткой времени Unix в соответствии с моим местным часовым поясом Asia / Kolkata. Может ли кто-нибудь помочь мне получить значение временной метки Unix в GMT?

Для получения дополнительной информации: вы можете проверить значение отметки времени Unix для даты и времени по Гринвичу здесь, по этой ссылке.

Спасибо!


person Deep Kakkar    schedule 21.08.2018    source источник
comment
попробуйте new Date('2018-08-21T11:37:56Z').getTime() / 1000   -  person Jaromanda X    schedule 21.08.2018
comment
Если вы не включите информацию о часовом поясе в строку даты, как вы можете ожидать, что он узнает, что вам нужно время в формате UTC?   -  person Pointy    schedule 21.08.2018
comment
в этот момент некоторые варианты ввода в конструктор Date do предполагают UTC: p   -  person Jaromanda X    schedule 21.08.2018
comment
@JaromandaX У меня есть значение даты и времени как 2018-08-21 11:37:56 в базе данных.   -  person Deep Kakkar    schedule 21.08.2018
comment
ну это просто изменить ... '2018-08-21 11:37:56'.replace(' ', 'T')+'Z'   -  person Jaromanda X    schedule 21.08.2018
comment
@JaromandaX ну конечно, числовые сеттеры UTC, но в данном случае это строка. А хранить строковые даты в базе данных довольно странно.   -  person Pointy    schedule 21.08.2018
comment
Возможно, они не хранятся таким образом, просто извлечение делает их такими   -  person Jaromanda X    schedule 21.08.2018
comment
Я знаю, но он предоставляется ... и изменения стоят дорого @Pointy   -  person Deep Kakkar    schedule 21.08.2018


Ответы (1)


Без часового пояса новая дата предполагает местное время

Итак, допустим, вы извлекаете строку

var date = '2018-08-21 11:37:56';

что ты можешь сделать, это

var date = '2018-08-21 11:37:56';
var t = new Date(date.replace(' ', 'T') + 'Z').getTime() / 1000;
console.log(t); // 1534851476 - see for yourself

person Jaromanda X    schedule 21.08.2018