2015-05-18 2 views
0
var time_in = data[i].timeIn;//data[i].timeIn= 2015-04-18 1:00:30 
time_in = new Date(time_in); 

В Firefox, результат time_in в консоли → Date {Invalid Date}.Javascript Дата не может поддерживать в браузере FireFox

В Chrome результат time_in в консоли → Sat Apr 18 2015 01:00:30 GMT+0630 (Myanmar Standard Time)

+0

Что содержат данные? –

+0

@DanyalSandeelo См. Комментарий в своем примере кода. Используйте 'new Date (« 2015-04-18 1:00:30 »)' для тестирования. –

+2

Посмотрите на эти посты, [StackOverflow объяснение] [1] [Другое объяснение в StackOverflow] [2] [1]: http://stackoverflow.com/ вопросы/3257460/new-date-is-working-in-chrome-but-not-firefox [2]: http://stackoverflow.com/questions/12822225/javascript-date-function-returns-date-invalid -date-in-firefox-browser – Jan

ответ

3

Дата вы дали в качестве параметра является недействительным, хотя браузеры могут пытаться интерпретировать его так или иначе.

Вместо этого вы должны использовать формат RFC2822 или ISO 8601, он лучше работает в кросс-браузерных ситуациях. Например, это может быть дата в формате ISO 8601:

2015-04-18T01:00:30+0630 

Кстати, в 8601 формат ISO должен быть действует в среде жалобы ECMAScript 5.

+0

Это правильный ответ, а не просто 'new Date (год, месяц, ...)' .stick to _UNIVERSAL EXACT FORMATS_ –

+1

Технически дата не является недопустимой, так же как параметр 'Date()' ;-) – Mackan

+0

Я имел в виду с точки зрения спецификаций ECMAScript, но вы правы. – meskobalazs

-1

Пожалуйста Попробуйте

new Date(); 
new Date(value); 
new Date(dateString); 
new Date(year, month[, day[, hour[, minutes[, seconds[, milliseconds]]]]]); 

Вы можете узнать об этой функции от следующей ссылки

LINK

+2

Это буквально просто скопирован с страницы MDN и не дает ответа – Phil

Смежные вопросы