nodejs时间戳与日期之间的转换
1、日期转换成时间戳
格式:new Date(localTime).getTime();
示例:
//date to timestamp
var str = "Jan 19 2017 13:00:00";
var t1 = new Date(str).getTime();
console.log(t1); //=>1484802000000
需要注意两点:
第一,这里的str是按当地时间(localTime)计算的, 以中国为例,此处str表示北京时间(第8时区)2017年1月19日13时,亦即表示格林威治时间(第0时区)2017年1月19日05时。
第二,此处的str支持多种格式,例如以下两种写法得到的结果一致
var str1 = "2017-01-19 13:00:00";
var str2 = "Jan 19 2017 13:00:00";
var t1 = new Date(str1).getTime();
var t2 = new Date(str2).getTime();
2、时间戳转换成日期
格式:new Date(m);
示例:
var t1 = 1484802000000; //milliseconds
var d = new Date(t1);
console.log(d); //=>2017-01-19T05:00:000Z
需要注意的是,这里new Date(m)的参数m是标准时间戳,单位为毫秒,函数返回第0时区的日期。
3、得到当前时刻的时间戳
var t1 = Date.now();
var t2 = new Date().getTime();
console.log(t1);
console.log(t2);
4、日期之间的比较
将日期转换成时间戳后直接进行计算即可,举例计算两个日期之间的间隔是否大于一个星期:
var str1 = "2017-02-27 13:00:00";
var str2 = "2017-03-05 13:00:00";
var t1 = new Date(str1).getTime();
var t2 = new Date(str2).getTime();
if((t2-t1)>7*24*3600*1000) console.log('interval is greater than a week');