Возможно, создание объекта 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);