2016-12-17 7 views
0

У меня есть следующие даты в формате UTC: 2016-06-18T05:18:27.935ZJavascript: Преобразование даты в формат UTC

Я использую следующий код, чтобы преобразовать его в следующем формат 2016-06-18 05:18:27 так что я могу сравнить его в MySQL базы данных против updatedAt колонка ,

var date = new Date(lastRequest); 
date = date.getUTCFullYear() + '-' + 
    ('00' + (date.getUTCMonth() + 1)).slice(-2) + '-' + 
    ('00' + date.getUTCDate()).slice(-2) + ' ' + 
    ('00' + date.getUTCHours()).slice(-2) + ':' + 
    ('00' + date.getUTCMinutes()).slice(-2) + ':' + 
    ('00' + date.getUTCSeconds()).slice(-2); 

Мне нужно получить дату последней записи и преобразовать ее дату в формат UTC.

В принципе, как мне перейти из следующего формата: 2016-06-18 05:18:27 назад в UTC?

ответ

1
new Date('2016-06-18 05:18:27').toUTCString() 

toUTCString() Метод преобразует дату в строку, используя временную зону UTC.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toUTCString

И в самом деле, ваш формат может быть результатом этого:

new Date('2016-06-18 05:18:27').toISOString() 

И, кстати, если вы хотите, чтобы отформатировать дату, moment.js или fecha может быть лучше.

Вы можете также найти похожие ответы в How do you convert a JavaScript date to UTC?

+0

Я думаю, что OP пытался получить ** из ** строки времени UTC обратно ** на ** javascript 'Date'. – 2ps

+1

@ 2ps Ну, по 'новой дате()' все будет в порядке. Но я думаю, что хранить 'string' (возможно,' varchar'?) Для даты является ошибкой, ведь 'timestamp' является лучшим типом в MySQL. – SkyAo

0

Попробуйте

var date = new Date(Date.now()); 
date = date.getUTCFullYear() + '-' + 
    ('00' + (date.getUTCMonth() + 1)).slice(-2) + '-' + 
    ('00' + date.getUTCDate()).slice(-2) + ' ' + 
    ('00' + date.getUTCHours()).slice(-2) + ':' + 
    ('00' + date.getUTCMinutes()).slice(-2) + ':' + 
    ('00' + date.getUTCSeconds()).slice(-2); 
print(date); 
print(date.slice(0,10)+'T'+date.slice(11,19)+'.000Z'); 

2016-12-17 04:34:28 2016-12-17T04: 34: 28.000Z

http://rextester.com/SGDV59246

+0

Спасибо! Есть ли способ сохранить то же значение «.000Z»? то есть оригинал был «2016-06-18T05: 18: 27.935Z' и после использования вашего решения это« 2016-06-18T05: 18: 27.000Z » – user1107173