日期格式化
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
第一种方法具有针对性,比较简单。第二种是一个公共的类方法,有点复杂,总的来说,能用就行。