获取现在的时间0时0秒
JavaScript获得时间戳的方法有五种,后四种都是通过实例化时间对象new Date() 来进一步获取当前的时间戳,JavaScript处理时间主要使用时间对象Date
Date.now()可以获得当前的时间戳:
console.log(Date.now()) //1642471441587
?
注意:时间戳参数必须是Number类型,如果是字符串,解析结果:Invalid Date。
如果后端直接返回时间戳给前端,前端如何转换呢?下面介绍2种实现方式
生成一个时间
function getLocalTime(n) {
return new Date(parseInt(n)).toLocaleString().replace(/:\d{1,2}$/,' ');
}
getLocalTime(1642471746435) //'2022/1/18 上午10:09 '
先转换为data对象,然后利用拼接正则等手段来实现
生成yyy-mmm dd-hh:mms
function getData(n){
n=new Date(n)
return n.toLocaleDateString().replace(/\//g, "-") + " " + n.toTimeString().substr(0, 8)
}
getData(1642471746435) //'2022-1-18 10:09:06'
不过这样转换在某些浏览器上会出现不理想的效果,因为toLocaleDateString()方法是因浏览器而异的,比如 IE为"2016年8月24日 22:26:19"格式 ;搜狗为"Wednesday, August 24, 2016 22:39:42"
可以通过分别获取时间的年月日进行拼接,这样兼容性更好:
function getData(n) {
? let now = new Date(n),
? ? y = now.getFullYear(),
? ? m = now.getMonth() + 1,
? ? d = now.getDate();
? return y + "-" + (m < 10 ? "0" + m : m) + "-" + (d < 10 ? "0" + d : d) + " " + now.toTimeString().substr(0, 8);
}
getData(1642471746435) //'2022-1-18 10:09:06'
?
?