在javascript中将日期转换为自定义格式

Convert Date in to custom format in javascript

本文关键字:自定义 格式 转换 日期 javascript      更新时间:2023-09-26

我有一个这样的日期格式

 2014-11-18T20:50:01.462Z

我需要使用 Javascript 日期函数转换为自定义格式,例如"20:50 2014-18-11"

我需要这样的结果

20:50 2014-18-11

如何得到这个,提前感谢:)

假设你能够在你的项目中包含新的库,我强烈建议你使用moment.js(MIT许可证),而不是自己写这个。它为您解决了零填充等问题。

<script src="http://momentjs.com/downloads/moment.min.js"></script>
<script>
// Use an existing date object
var date = new Date("2014-11-18T20:50:01.462Z");
console.log(moment(date).format('HH:mm YYYY-DD-MM'));
// or use string directly
console.log(moment.utc("2014-11-18T20:50:01.462Z").format('HH:mm YYYY-DD-MM'));
</script>

请注意,默认情况下,时刻将使用您当前的时区进行输出,这可以使用 zone() 函数覆盖

console.log(moment.utc("2014-11-18T20:50:01.462Z").zone(0).format('HH:mm YYYY-DD-MM'));
console.log(moment.utc("2014-11-18T20:50:01.462Z").zone('UTC+05:30').format('HH:mm YYYY-DD-MM'));

输出

20:50 2014-18-11

试试 js 它非常好的插件来玩日期和时间

所以你需要做的就是导入时刻JS并将这一行放在你的JS代码中使用moment.js也将在未来为您的代码提供帮助

moment.utc("2014-11-18T20:50:01.462Z").format("HH:mm YYYY-DD-MM")

使用这个演示 JsFiddler

 var d = new Date,
        dformat = [ d.getHours().padLeft(), d.getMinutes().padLeft()].join(':')
                      + ' ' +
                  [d.getFullYear(), d.getDate().padLeft(), (d.getMonth()+1).padLeft()].join('-')
                  ;
Date.prototype._padding = function(v, w) {
    var f = "0000" + v;
    return ("0000" + v).substr(f.length-w, f.length)
}
Date.prototype.MyDateString = function() {
    return this._padding(this.getUTCHours(), 2) + ":" + this._padding(this.getUTCMinutes(), 2) + " " + this.getUTCFullYear() + "-" + this._padding(this.getUTCDate(), 2) + "-" + this._padding((this.getUTCMonth() + 1), 2);
}
console.log(new Date('2014-11-18T20:50:01.462Z').MyDateString())
console.log(new Date('2014-11-08T02:05:01.462Z').MyDateString())

getUTCMonth返回 10,因为月份从 0 开始。