Преобразование UNIX Время в мм/дд/гг. Чч: мм (24 часа) в JavaScript

Я использовал

timeStamp = new Date(unixTime*1000);
document.write(timeStamp.toString());

И он будет выводиться, например:

Вт Июл 6 08:47:00 CDT 2010
// 24-часовое время

Экранная недвижимость - простое, поэтому я бы хотел заняться меньшим пространством с датой и выходом:

mm/dd/yy hh: mm
// также 24-часовое время

Ответы

Ответ 1

Просто добавьте дополнительный метод к объекту Date, чтобы вы могли его повторно использовать столько, сколько хотите. Во-первых, нам нужно определить вспомогательную функцию, String.padLeft:

String.prototype.padLeft = function (length, character) { 
    return new Array(length - this.length + 1).join(character || ' ') + this; 
};

После этого определим Date.toFormattedString:

Date.prototype.toFormattedString = function () {
    return [String(this.getMonth()+1).padLeft(2, '0'),
            String(this.getDate()).padLeft(2, '0'),
            String(this.getFullYear()).substr(2, 2)].join("/") + " " +
           [String(this.getHours()).padLeft(2, '0'),
            String(this.getMinutes()).padLeft(2, '0')].join(":");
};

Теперь вы можете просто использовать этот метод, как и любой другой метод объекта Date:

var timeStamp = new Date(unixTime*1000);
document.write(timeStamp.toFormattedString());

Но, пожалуйста, имейте в виду, что такое форматирование может ввести в заблуждение. Например, при выдаче

new Date().toFormattedString()

функция возвращает 07/06/10 22:05 в данный момент. Для меня это больше похоже на 7 июня, чем на 6 июля.

EDIT: Это работает только в том случае, если год может быть представлен с использованием четырехзначного числа. После 31 декабря 9999 года это будет работать неправильно, и вам придется отрегулировать код.