在JavaScript
中,所有Date
实例都被存储成一个数字:距离Unix新纪元(1970 年 1 月 1 日 00:00:00)的毫秒数
。
一、构造Date对象
Date
对象有 四 种构造方式。
1.构造时如果不传任何参数,就只会返回一个表示当前日期的Date对象。
const d = new Date()
console.log(d) // Fri Sep 07 2018 15:26:39 GMT+0800 (中国标准时间)
2.通过传入一个会被JavaScript解析的字符串来构造
console.log(new Date('September 7, 2018')) // Fri Sep 07 2018 00:00:00 GMT+0800 (中国标准时间)
console.log(new Date('September 7, 2018, GMT+0800')) // Fri Sep 07 2018 00:00:00 GMT+0800 (中国标准时间)
3.通过传入一个毫秒数来构造
// 从Unix新纪元的时间创建日期
console.log(new Date(0)) // Thu Jan 01 1970 08:00:00 GMT+0800 (中国标准时间)
console.log(new Date(10000)) // Thu Jan 01 1970 08:00:10 GMT+0800 (中国标准时间)
console.log(new Date(1536307550023)) // Fri Sep 07 2018 16:05:50 GMT+0800 (中国标准时间)
// 使用负数创建新纪元之前的日期
console.log(new Date(-1536307550023)) // Tue Apr 26 1921 23:54:09 GMT+0800 (中国标准时间)
4.通过传入一个特定的本地日期来构造
总的来说格式为: new Date(年, 月, 日, 时, 分, 秒)
// 月份是从0开始的,一月为0,二月为1,九月为8等等
console.log(new Date(2018, 8)) // Sat Sep 01 2018 00:00:00 GMT+0800 (中国标准时间)
console.log(new Date(2018, 8, 7)) // Fri Sep 07 2018 00:00:00 GMT+0800 (中国标准时间)
console.log(new Date(2018, 8, 7, 16)) // Fri Sep 07 2018 16:00:00 GMT+0800 (中国标准时间)
console.log(new Date(2018, 8, 7, 16, 7)) // Fri Sep 07 2018 16:07:00 GMT+0800 (中国标准时间)
console.log(new Date(2018, 8, 7, 16, 7, 50)) // Fri Sep 07 2018 16:07:50 GMT+0800 (中国标准时间)
console.log(new Date(2018, 8, 7, 16, 7, 50, 23)) // Fri Sep 07 2018 16:07:50 GMT+0800 (中国标准时间)
二、将日期转换为毫秒数
Date
对象的valueOf()
方法,可以将日期转换为毫秒数。
console.log(new Date(2018, 8, 7, 16, 5, 50, 23).valueOf()) // 1536307550023
网友评论