在JavaScript中将UNIX时间转换为mm / dd / yy hh:mm(24小时)

时间:2010-07-06 15:36:42

标签: javascript

我一直在使用

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

它将输出例如:

Tue Jul 6 08:47:00 CDT 2010
// 24小时时间

屏幕不动产是主要的,所以我希望用日期和输出占用更少的空间:

mm / dd / yy hh:mm
//也是24小时的时间

1 个答案:

答案 0 :(得分:11)

只需向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。对我来说,这更像是6月7日而不是7月6日。

编辑:仅当年份可以使用四位数字表示时才有效。在9999年12月31日之后,这将出现故障,您将不得不调整代码。