2015-01-26 4 views
0

Я использую внешний API для получения некоторых данных. Затем я делаю некоторые вычисления в Javascript с этими данными. Одно поле - это дата в таком формате: 2015-01-26 18:28:14Неверная дата в Javascript Date

Тогда я должен разобрать эту дату. Я пробовал с:

var last = "2015-01-26 18:28:14" 
var login = new Date(last).getTime(); 

Но у меня есть ошибка Неверная дата. Я также попытался:

var last = "2015-01-26 18:28:14" 
var login = Date.parse(last); 
+0

Работы для меня в Chrome. – j08691

+0

Дает и ошибки для меня, если его в формате «2015/01/26 00:00:00» (firefox) – atmd

+0

ISO-8601 - это хорошо зарекомендовавший себя и полностью совместимый стандарт. Логика синтаксического анализа даты в некоторых браузерах более терпима, в некотором роде. (BTW, 'parse' - это именно то, что использует' '' '' '' '' '' '' '' '' ''' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' Нет никаких оснований для того, чтобы какой-либо внешний API не возвращал обычные форматы дат ванили. Если это вообще возможно, попробуйте изменить API. В противном случае используйте библиотеку анализа даты, такую ​​как момент. Последнее, что вы хотите сделать, это потратить всю оставшуюся жизнь, преследуя некоторую ошибку в каком-то регулярном выражении, которое вы написали, чтобы выпустить даты форматов. –

ответ

1

Вы можете попробовать вставить символ T между датой и временем.

ECMAScript 5 добавляет поддержку дат и времени ISO-8601. ISO-8601 предусматривает, что отметки времени с указанием даты и времени должны быть записаны 2015-01-26T18:28:14.

Обратите внимание, что синтаксический анализ возвращается:

количество миллисекунд, прошедших с 1 января 1970 года, 00:00:00 UTC

Смотрите Date.parse() для получения дополнительной информации.

+0

Вы правы. Я не думал об этом, так как получаю контент от API. Если я изменил формат вручную, он работает :) – Tasos

+0

Да, можно утверждать, что API должен использовать «стандартный» формат, который легко расходуется программами = P – anddoutoi

0

Запуск кода вызвало ошибки для меня в Firefox слишком

форматирование даты, как это решить проблему

"2015/01/26 00:00:00" 


var last = "2015/01/26 18:28:14" 
var login = new Date(last).getTime(); 

, если дата возвращается с «-» вы можете просто сделать замену

var d = "2015-01-26 18:28:14"; 
var login = new Date(d.replace('-', '/')).getTime(); 
Смежные вопросы