欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

日期格式化

程序员文章站 2022-07-15 09:36:46
...

第一种方法:根据自己的需求,封装一个函数

比如:我要显示2018年09月30日 10:28这样格式的日期类型,通过后台返回的时间戳,自己去封装一个针对这种格式的时间转换。

   function toTime(time){
            var _date = new Date(String(time).length==10 ? time*1000 : time);//时间戳可能是10位数或者13位数的
            var _Y = _date.getFullYear()+'年';
            var _y = (_date.getMonth()+1 < 10 ? '0'+(_date.getMonth()+1) : _date.getMonth()+1)+'月';
            var _d = _date.getDate() + '日 ';
            var _h = _date.getHours() + ':';
            var _m = _date.getMinutes();
            return _Y+_y+_d+_h+_m;
    }
console.log(toTime(new Date()));//2018年09月30日 10:28

第二种方法:网上的方法,把date日期函数通过prototype添加一个方法。

Date.prototype.Format = function (fmt) { //author: meizz 
    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");
var time2 = new Date().Format("yyyy-MM-dd HH:mm:ss");  
console.log(time1,time2);//2018-09-30 2018-09-30 10:33:46

第一种方法具有针对性,比较简单。第二种是一个公共的类方法,有点复杂,总的来说,能用就行。