一、关于日期时间的标准
格林威治标准时间: (Greenwich Mean Time,简称G.M.T.)
十七世纪,格林威治皇家天文台为了海上霸权的扩张计画而进行天体观测。1675年旧皇家观测所(Old Royal Observatory) 正式成立,到了1884年决定以通过格林威治的子午线作为划分地球东西两半球的经度零度。观测所门口墙上有一个标志24小时的时钟,显示当下的时间,对全 球而言,这里所设定的时间是世界时间参考点,全球都以格林威治的时间作为标准来设定时间,这就是我们耳熟能详的「格林威治标准时间」 (Greenwich Mean Time,简称G.M.T.)
世界标准时间(Coordinated Universal Time,简称UTC.)
UTC (Coordinated Universal Time) 世界标准时间,是经过平均太阳时(以格林威治时间GMT为准)、地轴运动修正后的新时标以及以「秒」为单位的国际原子 时所综合精算而成的时间,计算过程相当严谨精密,因此若以「世界标准时间」的角度来说,UTC比GMT来得更加精准。其误差值必须保持在0.9秒以内,若 大于0.9秒则由位于巴黎的国际地球自转事务中央局发布闰秒,使UTC与地球自转周期一致。所以基本上UTC的本质强调的是比GMT更为精确的世界时间标准。
二、时间戳
获取当前时间戳
方法一:精确到秒
var timestamp = Date.parse(new Date());
console.log(timestamp );//1572365623000
方法二:精确到毫秒
var timestamp = (new Date()).valueOf();
//或者
var timestamp=new Date().getTime();
console.log(timestamp );//1572365728965
三、时间戳转为日期格式
function toTime(timestamp) {
//时间戳为10位需*1000,时间戳为13位的话不需乘1000
if((timestamp+'').length==10){
var date = new Date(timestamp * 1000);
}
if((timestamp+'').length==13){
var date = new Date(timestamp );
}
var Y = (date.getFullYear()+'').padStart(2,0) + '-';
var M = Number((date.getMonth()+'').padStart(2,0))+1+ '-';
var D = (date.getDate()+'').padStart(2,0)+ ' ';
var h = (date.getHours()+'').padStart(2,0) + ':';
var m = (date.getMinutes()+'').padStart(2,0) + ':';
var s = (date.getSeconds()+'').padStart(2,0);
return Y+M+D+h+m+s;
}
var time1=toTime(1572455600701);
var time2=toTime(1572455600000);
console.log(time1,time2);//2019-10-31 01:13:20 2019-10-31 01:13:20
四、日期格式转时间戳
function toTimestamp(dateStr){
var newstr = dateStr.replace(/-/g,'/');
var date = new Date(newstr);
var time_str = date.getTime().toString();
return [time_str.substr(0, 10),time_str];
}
toTimestamp('2019-06-17 23:11:54');
console.log(toTimestamp('2019-06-17 23:11:54'));//[1560784314,1560784314000]
//验证
var unixTime=new Date('2019-06-17 23:11:54').getTime();
console.log(unixTime);//1560784314000