日期格式化

2018-09-30  本文已影响0人  没_有_人

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

比如:我要显示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

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

上一篇下一篇

猜你喜欢

热点阅读