问题背景:想把一个时间直接转成字符串格式
通过查api发现有个toLocaleString(),根据本地时间格式,把 Date 对象转换为字符串
new Date().toLocaleString();
//"2018/5/31 下午1:43:06"
但是默认是12小时制,会带这种上午下午,所以肯定不需要,继续查,发现可以配置
var ss = new Date().getTime() + 3600000;
(new Date(ss).toLocaleString('chinese',{hour12:false})).replace(/\//g,'-');
//"2018-5-31 14:40:32"
这样就转成我需要的格式啦。
JS的日期对象方法,可以看下:JavaScript Date 对象
1、js获取当前时间戳的方法
var timestamp1 = Date.parse(new Date());
var timestamp2 = (new Date()).valueOf();
var timestamp3 = new Date().getTime();
console.log(timestamp1,timestamp2,timestamp3)
//VM140:4 1527745698000 1527745698616 1527745698616
第一种:获取的时间戳是精度到秒级,把毫秒改成000显示;
第二种和第三种是精度到毫秒级,获取了当前毫秒的时间戳。
var newDay1 = new Date();
var newDay2 = Date.parse(new Date());
var newDay3 = +new Date();
console.log(Number(newDay1),newDay2,newDay3)
//VM160:4 1527745994726 1527745994000 1527745994726
第一种和第三种,使用数字对象的方法返回的时间戳,精确到了毫秒,
而第二种日期对象的Date.parse()方法只精确到了秒,后三位都是用的0填充的,所以个人推荐第一种
2、将时间戳转换成Date对象
new Date(1527745994726)
//Thu May 31 2018 13:53:14 GMT+0800 (中国标准时间)