解决JS中new Date().Format()报错:ES6移除该方法及手动实现方案
作者:代码拾荒时间:2026-10-26 09:38:37浏览:316
ES6标准已移除Date.prototype.format方法,直接调用会报错。本文介绍通过扩展Date原型手动实现格式化的方案,支持年月日时分秒等自定义格式,并提供将时间戳转换为指定日期字符串的具体代码示例,解决前端开发中的日期显示需求。
原因:ES6标准中已经移除了Format方法。
JS日期格式化转换方法
1. 将日期转换为指定的格式
例如,需要将其转换为年月日时分秒格式,即yyyy-MM-dd hh:mm:ss,或者仅保留年月日格式yyyy-MM-dd。
以下方法整理自网络资源,供参考使用。
可以通过为Date原型添加如下方法来扩展功能:
Date.prototype.format = function(fmt) {
var o = {
"M+" : this.getMonth()+1, //月份
"d+" : this.getDate(), //日
"h+" : this.getHours(), //小时
"m+" : this.getMinutes(), //分
"s+" : this.getSeconds(), //秒
"q+" : Math.floor((this.getMonth()+3)/3), //季度
"S" : this.getMilliseconds() //毫秒
};
if(/(y+)/.test(fmt)) {
fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
}
for(var k in o) {
if(new RegExp("("+ k +")").test(fmt)){
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
}
}
return fmt;
}
示例代码
调用方式如下:
var time1 = new Date().format("yyyy-MM-dd hh:mm:ss");
console.log(time1);运行结果如下:

同样可以转换为年月日格式。
var time2 = new Date().format("yyyy-MM-dd");
console.log(time2);运行结果如下:

2. 将指定的日期转换为年月日格式
代码如下:
var oldTime = (new Date("2012/12/25 20:11:11")).getTime();
var curTime = new Date(oldTime).format("yyyy-MM-dd");
console.log(curTime);运行结果如下:

3. 将时间戳转换为年月日格式
参考以下代码:
var da = 1402233166999;
da = new Date(da);
var year = da.getFullYear()+'年';
var month = da.getMonth()+1+'月';
var date = da.getDate()+'日';
console.log([year,month,date].join('-'));总结
以上为个人经验总结,希望能提供有效参考,也希望大家多多支持本站。
作者最新文章
JavaScript异步发送HTTP请求时怎么优雅地处理错误
2026-11-05 17:10:44
5款主流JS在线运行工具对比:CodePen、JSFiddle与StackBlitz怎么选
2026-11-05 17:04:04
JavaScript入门书籍避坑:这些书不适合初学者
2026-11-05 16:31:15
JS使用Math.round实现保留两位小数的原理与代码
2026-11-05 15:35:55
JavaScript 原生 Date 对象怎么实现日期加减
2026-11-05 14:30:00
