【发布时间】:2026-01-07 12:35:01
【问题描述】:
我一直在用
timeStamp = new Date(unixTime*1000);
document.write(timeStamp.toString());
它会输出例如:
2010 年 7 月 6 日星期二 08:47:00 CDT
//24小时制
屏幕空间是主要的,所以我想在日期和输出上占用更少的空间:
mm/dd/yy hh:mm
//也是24小时制
【问题讨论】:
标签: javascript
我一直在用
timeStamp = new Date(unixTime*1000);
document.write(timeStamp.toString());
它会输出例如:
2010 年 7 月 6 日星期二 08:47:00 CDT
//24小时制
屏幕空间是主要的,所以我想在日期和输出上占用更少的空间:
mm/dd/yy hh:mm
//也是24小时制
【问题讨论】:
标签: javascript
只需向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 日之后,这将发生故障,您必须调整代码。
【讨论】:
substr(2, 2),只需使用slice(-2),这将一直有效到世界末日。 :P
Date(以及使用其中几个时的冲突)。只是不要这样做!