1.创建日期的三种方式
- 方式1无参数
var date = new Date() //返回当前日期和时间, 创建的都是Date对象
//输出为当前时间信息
console.log(date) //Sun Jan 02 2022 09:02:12 GMT+0800 (中国标准时间)
console.log(Date()); //输出一个字符串时间 Sun Jan 02 2022 09:02:12 GMT+0800 (中国标准时间)
console.log(typeof date) //object
console.log(typeof Date()); //string
- 参数为日期数字字符串
var date2 = new Date('2022-1-1 00:00:00')
//输出为该时间的信息
console.log(date2) //Sat Jan 01 2022 00:00:00 GMT+0800 (中国标准时间)
- 参数为距离1970-01-01:8:00:00的毫秒数
var date3 = new Date(0)
console.log(date3) //Thu Jan 01 1970 08:00:00 GMT+0800 (中国标准时间)
var date4 = new Date(1000)
console.log(date4)//Thu Jan 01 1970 08:00:01 GMT+0800 (中国标准时间)
2.日期常用方法
var date5 = new Date('2022-1-1 08:30:10')
console.log(date5); //Sat Jan 01 2022 08:30:10 GMT+0800 (中国标准时间)
var Y = date5.getFullYear() //获取该时间的年份
console.log(Y); //2022
var M = date5.getMonth() //获取月份 ,0表示1月份,后面以此类推
console.log(M) //0
var D = date5.getDate() //获取日
console.log(D); //1
var h = date5.getHours() //时
console.log(h); //8
var m = date5.getMinutes() //分
console.log(m); //30
var s = date5.getSeconds() //秒
console.log(s); //10
var d = date5.getDay() //获取星期几
console.log(d); //6
var time = date5.getTime() //1970到该时间的毫米数 注: 这个没有getUTCTime()方法, 因为这个值和时区无关
console.log(time); //1640997010000
var time2 = Date.now() //1970到此刻时间的毫米数
console.log(time2); //1641084665299
// 补充
var H2 = date5.getUTCHours() //获取世界时间(UTC或GMT)的小时,不写表示使用本地时间
console.log(H2); //0
var mS = date5.getMilliseconds() //获取毫秒数
console.log(mS);
var m2 = date5.getTimezoneOffset() //返回该日期的本地表示与UTC表示之间相差的分钟数, 注意返回值依赖于指定日期的夏令时是否有效
console.log(m2); //-480
// Date.parse() 解析一个日期及时间的字符串表示, 返回该日期的内部毫秒表示
console.log(Date.parse('2022 1 1')); //1640966400000 返回1970/1/1 距离该日期时间的毫秒数。
//设置更改时间set方法以上例子里面除了getDay()和getTimezoneOffset()没有set方法,
// 其他都是有相应的set方法的, 直接将get替换成set即可用
date5.setDate(10) //将1号改成了10号
console.log(date5); //Mon Jan 10 2022 08:30:10 GMT+0800 (中国标准时间)
3. 日期和时间对象的转换
var date6 = new Date('2021-12-31 08:30:10')
console.log(date6.toDateString());//Fri Dec 31 2021 返回一个表示日期部分的字符串, 使用本地时区
console.log(date6.toISOString()); //2021-12-31T00:30:10.000Z 将Date转字符串, 以ISO-8601标准和以时区为"Z"的UTC时间表示形式
console.log(date6.toJSON()); //2021-12-31T00:30:10.000Z 将Date对象JSON序列化, 返回值和toISOString()一样
console.log(date6.toLocaleDateString());//2021/12/31 返回一个表示日期部分的字符串, 使用本地时区, 本地时间格式
console.log(date6.toLocaleString());//2021/12/31 上午8:30:10 将Date转换为字符串
console.log(date6.toLocaleTimeString());//上午8:30:10 返回一个表示时间部分的字符串
console.log(date6.toTimeString());//08:30:10 GMT+0800 (中国标准时间) 返回一个表示时间部分的字符串
console.log(date6.toUTCString());//Fri, 31 Dec 2021 00:30:10 GMT 用世界时间将Date转换为字符串
console.log(date6.valueOf());//1640910610000 将Date转为对应的内部毫秒格式