Date.parse()
Date.UTC() //这个方法有问题,不建议使用
valueOf()
getTime()
(1)valueOf(): 该方法返回日期的毫秒表示,可以方便时间的比较,该方法返回的毫秒数精确到毫秒。
var date = new Date();
date.valueOf();
1368283579633
new Date(时间字符串).valueOf();
或new Date(时间字符串.replace('-','/')).valueOf();
new Date(‘2014/4/23’).valueOf()
new Date(‘2014/4/23 15:44:25’).valueOf()
new Date(‘2014-4-23 15:44:25’.replace(’-’,’/’)).valueOf()
new Date(‘2014-4-23 15:44:25:123’.replace(’-’,’/’)).valueOf()
(2)Date.parse():该方法接受一个表示日期的字符串参数,然后尝试根据这个日期返回日期的毫秒数。ECMA-262没有定义该方法支持哪种日期格式,因此这个方法的行为因为浏览器实现而异。如果传入字符串不能表示日期,那么它会返回NaN。该方法返回的毫秒值后三位全为0,精确到秒数,没有毫秒数。
Date.parse("2012年9月9日")
NaN
Date.parse("2012 9 9")
1347120000000
// 毫秒数转换为日期格式
new Date(Date.parse("2012 9 9"))
Sun Sep 09 2012 00:00:00 GMT+0800 (中国标准时间)
Date.parse(时间字符串)或Date.parse(new Date(时间字符串)或Date.parse(new Date(时间字符串.replace('-','/')))
Date.parse(‘2012/12/15’)
Date.parse(new Date(‘2012/12/15’))
Date.parse(new Date(‘2012-12-15’.replace(’-’,’/’)))
(3)getTime(): 返回表示日期的毫秒数,与valueOf()返回的值相同,也精确到毫秒数。
var date = new Date();
date.getTime();
1368283691951
new Date().getTime()或new Date(时间字符串.replace('-','/')).getTime()
new Date(时间字符串).getTime()【IOS无法解析】
(4)Date.UTC(): 该方法也返回表示日期的毫秒数,但是该方法接受的参数是年份、基于0的月份、月份中的哪一天、小时数、分钟、秒以及毫秒。这些参数中只有前两个参数是必需的。(不建议使用)
Date.UTC(12)
NaN
Date.UTC(2013,4,11);
1368230400000
示例:
// 1
var strtime = '2014-04-23 18:55:49:123';
var date = new Date(strtime.replace(/-/g, '/'));
var timeStamp = date.valueOf();
// 2
var strtime = '2014-04-23 18:55:49:123';
var data = new Date(strtime.replace(/-/g, '/'));
var timeStamp = Date.parse(data);
// 3
var strtime = '2014-04-23 18:55:49:123';
var date = new Date(strtime.replace(/-/g, '/'));
var paramTimestamp = date.getTime();
// ios无法解析
var date = new Date('2018-06-08 18:00:00');
var paramTimestamp = date.getTime();
//4(有问题,不建议使用,获得的结果不一样,如下)
Date.UTC(2021,12,5)//不准确,跟其他三种方法得到的结果不一样,不建议使用
1641340800000
new Date('2021/12/5').valueOf()
1638633600000
new Date('2021/12/5').getTime()
1638633600000
Date.parse('2021/12/5')
1638633600000
Date.UTC(2021-12-5)//不可用
1072915200000
Date.UTC(2021/12/5)//不可用
-1167609600000
//示例
Date.UTC(2021,12,5)
1641340800000
new Date("2021-12-5").valueOf()
1638633600000
new Date("2021/12/5").valueOf()
1638633600000
new Date("2021-12-5").getTime()
1638633600000
new Date("2021/12/5").getTime()
1638633600000
Date.parse("2021-12-5")
1638633600000
Date.parse(new Date("2021-12-5"))
1638633600000
// 注意
time1 = date.getTime(); // 精确到毫秒
time2 = date.valueOf(); // 精确到毫秒
time3 = Date.parse(date); // 只能精确到秒
time4 = Date.UTC(2021,12,5);//精确到毫秒
(1)new Date(1637031243978)
new Date(1637031243978)
Tue Nov 16 2021 10:54:03 GMT+0800 (中国标准时间)
new Date("2021/12/5")
Sun Dec 05 2021 00:00:00 GMT+0800 (中国标准时间)
typeof('2021/9/78')
'string'
typeof(new Date(1637031243978))
'object'
typeof(new Date('2021/9/78'))
'object'
(2)函数转化
const getTimestampConversion = function (timestamp) {
let timeStamp
let timeStampLen = timestamp.toString().length
if (timeStampLen === 10) {
timeStamp = timestamp * 1000
} else if (timeStampLen === 13) {
timeStamp = timestamp
} else {
timeStamp = timestamp
}
let date = new Date(timeStamp) // 时间戳为10位需*1000,时间戳为13位的话不需乘1000
let Y = (date.getFullYear() + '-')
let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'
let D = (date.getDate() < 10 ? '0' + date.getDate() + ' ' : date.getDate() + ' ')
let h = (date.getHours() < 10 ? '0' + date.getHours() + ':' : date.getHours() + ':')
let m = (date.getMinutes() < 10 ? '0' + date.getMinutes() + ':' : date.getMinutes() + ':')
let s = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds())
return Y + M + D + h + m + s
}
export default getTimestampConversion
//使用方法如下:
getTimestampConversion(1072915200000)
2004-01-01 08:00:00(转化的结果,个位数会补0,如01)
new Date(1072915200000)
Thu Jan 01 2004 08:00:00 GMT+0800 (中国标准时间)
new Date("2004-1-1").valueOf()
1072886400000
new Date("2004-01-01").valueOf()
1072915200000
new Date("2004-01-1").valueOf()
1072886400000
new Date("2004-1-01").valueOf()
1072886400000
示例:
new Date("2021/1/1").valueOf()
1609430400000
new Date("2021/01/1").valueOf()
1609430400000
new Date("2021/1/01").valueOf()
1609430400000
new Date("2021/01/01").valueOf()
1609430400000
new Date("2021-1-1").valueOf()
1609430400000
new Date("2021-01-1").valueOf()
1609430400000
new Date("2021-1-01").valueOf()
1609430400000
new Date("2021-01-01").valueOf()
1609459200000
new Date("2014/4/23").valueOf()
1398182400000
new Date("2014/04/23").valueOf()
1398182400000
new Date("2014-4-23").valueOf()
1398182400000
new Date("2014-04-23").valueOf()
1398211200000