时间戳
时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。
获取当前时间
获取当前时间(格林威治时间)
new Date()// Mon Nov 04 2019 11:18:38 GMT+0800 (中国标准时间)
获取当前时间戳,以秒s为单位
Math.round(new Date() / 1000)// 1572837688
获取当前时间戳,以毫秒ms为单位
new Date().getTime()// 1572837781719
Date.now()// 1572837781719
Math.round(new Date())// 1572837781719
时间戳转指定时间格式
**
*date 要转换的时间戳
*format 时间格式
**
/*时间戳转指定时间格式
*@method formatTime
*@param{number}date 时间戳
* @param{String}format 时间格式
*@return {String}
*/
formatTime = (date, format) => {
var timeformat = new Date(date)
var tf = function (i) { return (i < 10 ? '0' : '') + i }
return format.replace(/yyyy|MM|dd|HH|mm|ss/g, function (a) {
switch (a) {
case 'yyyy':
return tf(timeformat.getFullYear())
case 'MM':
return tf(timeformat.getMonth() + 1)
case 'mm':
return tf(timeformat.getMinutes())
case 'dd':
return tf(timeformat.getDate())
case 'HH':
return tf(timeformat.getHours())
case 'ss':
return tf(timeformat.getSeconds())
}
})
}
在网上又找到了另一种方法,觉得很简洁,拿来看看
function time(time = +new Date()) {
var date = new Date(time + 8 * 3600 * 1000);
return date.toJSON().substr(0, 19).replace('T', ' ').replace(/-/g, '.');
}
Date的‘toJSON’方法返回格林威治时间的JSON格式字符串,实际是使用‘toISOString’方法的结果。字符串形如‘2018-08-09T10:20:54.396Z’,转化为北京时间需要额外增加八个时区,我们需要取字符串前19位,然后把‘T’替换为空格,即是我们需要的时间格式。
时间格式转换为时间戳
new Date("2019-11-04 11:03:35").getTime()//1572836615000
Date.prototype.toISOString()
toISOString() 方法返回一个 ISO(ISO 8601 Extended Format)格式的字符串: YYYY-MM-DDTHH:mm:ss.sssZ。时区总是UTC(协调世界时),加一个后缀“Z”标识。
语法:dateObj.toISOString()
Date.parse()
Date.parse() 方法解析一个表示某个日期的字符串,并返回从1970-1-1 00:00:00 UTC 到该日期对象(该日期对象的UTC时间)的毫秒数,如果该字符串无法识别,或者一些情况下,包含了不合法的日期数值(如:2015-02-31),则返回值为NaN。