解决JS中new Date().Format()报错:ES6移除该方法及手动实现方案

作者:代码拾荒

时间:2026-10-26

浏览:315

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);

运行结果如下:

JS日期格式化转换方法

同样可以转换为年月日格式。

var time2 = new Date().format("yyyy-MM-dd");
console.log(time2);

运行结果如下:

JS日期格式化转换方法

2. 将指定的日期转换为年月日格式

代码如下:

    var oldTime = (new Date("2012/12/25 20:11:11")).getTime();
    var curTime = new Date(oldTime).format("yyyy-MM-dd");
    console.log(curTime);

运行结果如下:

JS日期格式化转换方法

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('-'));

总结

以上为个人经验总结,希望能提供有效参考,也希望大家多多支持本站。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章