前言
日期对象用于处理日期和时间,我们有时候需要对日期进行格式化处理再显示到页面上,或者把日期转换为时间戳跟方便一点,下面介绍一下如何把日期转换为一定格式以及如何时间戳和日期之间的相互转换。
其他的知识点看文档
日期格式化
<div id="demo1"></div>
<div id="demo2"></div>
<div id="demo3"></div>
<script>
Date.prototype.format = function (fmt) {
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"h+": this.getHours(), //小时
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) { //判断是否需要显示年
debugger;
fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));//substr(start,length)
}
for (var k in o) {
if (new RegExp("(" + k + ")").test(fmt)) {
debugger;
fmt = fmt.replace(//判断月日是否需要添加0
RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))
);
}
}
//星期几
if (/(w+)/.test(fmt)) {
var week=["日","一","二","三","四","五","六"]
fmt = fmt.replace(RegExp.$1, week[this.getDay()]);
}
//季度
if(/(q+)/.test(fmt)){
var season=["","冬","春","夏","秋","冬"];
fmt=fmt.replace(RegExp.$1, season[Math.floor((this.getMonth() + 4) / 3)])
}
return fmt;
}
document.getElementById("demo1").innerHTML = new Date(79, 5, 24, 11, 33, 0).format("MM月dd日");
var now = new Date();
console.log(now);
var nowStr = now.format("yyyy-MM-dd hh:mm:ss");
document.getElementById("demo2").innerHTML = new Date().format("yyyy年MM月dd日");
var nowStr = now.format("yy-MM-dd hh:mm:ss");
document.getElementById("demo3").innerHTML = new Date().format("yy年MM月dd日hh小时mm分ss秒");
</script>
结果
日期转换为时间戳
var now = new Date('2019-12-19');
console.log(now.getTime());//1576713600000
console.log(now.valueOf());//1576713600000
console.log(Date.parse(now));//1576713600000
要把日期转换为相应的格式,再转换为时间戳
时间戳转换为日期
var timestamp = new Date('2019-12-19 15:30:16').getTime();
console.log(timestamp);//1576740616000
var d = new Date(timestamp); // 时间戳为10位需*1000,时间戳为13位的话不需乘1000
var yyyy = d.getFullYear() + '-';
var MM = (d.getMonth() + 1 < 10 ? '0' + (d.getMonth() + 1) : d.getMonth() + 1) + '-';
var dd = d.getDate() + ' ';
var HH = d.getHours() + ':';
var mm = d.getMinutes() + ':';
var ss = d.getSeconds();
console.log(yyyy + MM + dd + HH + mm + ss);//2019-12-19 15:30:16