Недопустимая дата / отсутствует для объекта JS Date в IE / Firefox - PullRequest
1 голос
/ 10 декабря 2011

Я отображаю объект даты и времени в таблице, однако по какой-то причине в IE он отображается как None или Invalid Date, что-то не так с моим форматом или есть простой способ сделать его более читабельным, например, mm / dd / гггг чч: мм

это то, что отображается в Chrome:

Mon Nov 28 2011 16:00:00 GMT-0500 (EST)

Это преобразовывается из метки времени Unix в выходные данные на уровне API.

Ответы [ 3 ]

2 голосов
/ 10 декабря 2011

Возможно, создание объекта Date завершится неудачно, потому что новый конструктор Date () принимает только некоторый ограниченный, зависящий от реализации набор строк даты.

Вы можете использовать библиотеку Globalize иметь дело с такими проблемами, даже если не используется локализация в обычном смысле, - но иметь дело с различными строковыми представлениями дат, как и с локализацией.Сначала он выглядит немного грязно (требуется некоторое время, чтобы в нем разобраться - моя книга «Переход на глобальный уровень с JavaScript и Globalize.js» содержит более читабельное описание с множеством примеров), и он далек от совершенства, но оченьполезно.

Если вы знаете, что ваши метки времени имеют какой-то известный точный формат, вы можете легко их проанализировать и затем вывести в соответствии с вашим собственным дескриптором формата.Предполагая, для определенности, что формат приведен в качестве примера с

Пн 28 ноября 2011 16:00:00 GMT-0500 (EST)

(я знаю, что это output формат, который вы упомянули, но я просто использую его в качестве примера), сначала вы должны выполнить простую строковую операцию, чтобы отбросить части «GMT» и «(EST)» (в настоящее время Globalize не может их обработать), например,

Пн 28 ноября 2011 16:00:00 -05: 00

и тогда вы просто используете код, подобный следующему:

var foo = Globalize.parseDate(timestamp,'ddd MMM d yyyy HH:mm:ss zzz');
var out = Globalize.format(foo,'MM/dd/yyyy HH:MM');
document.write(out);
0 голосов
/ 10 декабря 2011

Я подозреваю, что Chrome помогает вам и вызывает метод .toString () для вас.

Объект Date имеет несколько методов для форматирования вывода строки. См. справочную страницу w3schools для примеров.

0 голосов
/ 10 декабря 2011

просто создайте свой собственный метод для форматирования даты в виде строки, чтобы вы справились со всеми проблемами с различными браузерами и планшетами

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