1、字符串为参数
优点: 传什么时间就是什么时间
缺点: 如果超出有效范围 会返回无效日期
有效日期:
var date = new Date("2021-10-1 12:12:12:001");
var date = new Date("2021/10/1 12:12:12:001");
var date = new Date("2021.10.1 12:12:12:001");
var date = new Date("2021.10.1");
console.log(date);
无效日期:
var date = new Date("2021-10-31 12:12:12:001");
console.log(date);
代码效果如下:
2、变量为参数
2.1
注意:月份(0-11) 对应于1~12月(也就是说月份设置0时,为1月)
优点: 超出临界值(最小值 和 最大值) 会自动换算
缺点: 月份(0-11 需要自己计算) 传参时: 月份参数 = 期望的月份 - 1
var date = new Date(2021,10,1,12,12,12,001);
//参数对应(年,月,日,时,分,秒,毫秒)
console.log(date);
代码效果如下:由于月份是10,所以实际打印出的是11月
2.2
当时间超出换算时,超出最大值 => 向下一个单位换算
大于最大值时
var date = new Date(2021,7,32,12,12,12,001); // 2021-8-32 => 2021-9-1
console.log(date);
var date = new Date(2021,12,1,12,12,12,001); // 2022-1-1
console.log(date);
代码效果:
小于最小值
var date = new Date(2021,7,0,12,12,12,001); // 2021-8-0 => 2021-7-31
console.log(date);
var date = new Date(2021,-1,1,12,12,12,001); // 2020-12-1
console.log(date);
代码效果:
3、纯数字做参数
作用:会将这个纯数字认为是一个从1970-1-1开始的毫秒数
var date = new Date(0); //Jan 01 1970 08:00:00 GMT+0800 (中国标准时间)
var date = new Date(2021);
console.log(date);
代码效果:
4、以一个日期对象做参数
传一个日期对象 => 得到一个于原日期时间相同的新日期
var date = new Date();
console.log(date);
var d1 = new Date(date); // date => 毫秒数(ms) 在运算
console.log(d1);
代码效果:也就是可以截取当前时间点保存下来
date的拓展方法
Date() 返回当日的日期和时间。
getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。
getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)。
getMonth() 从 Date 对象返回月份 (0 ~ 11)。
getFullYear() 从 Date 对象以四位数字返回年份。
getYear() 请使用 getFullYear() 方法代替。
getHours() 返回 Date 对象的小时 (0 ~ 23)。
getMinutes() 返回 Date 对象的分钟 (0 ~ 59)。
getSeconds() 返回 Date 对象的秒数 (0 ~ 59)。
getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)。
getTime() 返回 1970 年 1 月 1 日至今的毫秒数。
getTimezoneOffset() 返回本地时间与格林威治标准时间 (GMT) 的分钟差。
getUTCDate() 根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。
getUTCDay() 根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。
getUTCMonth() 根据世界时从 Date 对象返回月份 (0 ~ 11)。
getUTCFullYear() 根据世界时从 Date 对象返回四位数的年份。
getUTCHours() 根据世界时返回 Date 对象的小时 (0 ~ 23)。
getUTCMinutes() 根据世界时返回 Date 对象的分钟 (0 ~ 59)。
getUTCSeconds() 根据世界时返回 Date 对象的秒钟 (0 ~ 59)。
getUTCMilliseconds() 根据世界时返回 Date 对象的毫秒(0 ~ 999)。
parse() 返回1970年1月1日午夜到指定日期(字符串)的毫秒数。
setDate() 设置 Date 对象中月的某一天 (1 ~ 31)。
setMonth() 设置 Date 对象中月份 (0 ~ 11)。
setFullYear() 设置 Date 对象中的年份(四位数字)。
setYear() 请使用 setFullYear() 方法代替。
setHours() 设置 Date 对象中的小时 (0 ~ 23)。
setMinutes() 设置 Date 对象中的分钟 (0 ~ 59)。
setSeconds() 设置 Date 对象中的秒钟 (0 ~ 59)。
setMilliseconds() 设置 Date 对象中的毫秒 (0 ~ 999)。
setTime() 以毫秒设置 Date 对象。
setUTCDate() 根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。
setUTCMonth() 根据世界时设置 Date 对象中的月份 (0 ~ 11)。
setUTCFullYear() 根据世界时设置 Date 对象中的年份(四位数字)。
setUTCHours() 根据世界时设置 Date 对象中的小时 (0 ~ 23)。
setUTCMinutes() 根据世界时设置 Date 对象中的分钟 (0 ~ 59)。
setUTCSeconds() 根据世界时设置 Date 对象中的秒钟 (0 ~ 59)。
setUTCMilliseconds() 根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。
toSource() 返回该对象的源代码。
toString() 把 Date 对象转换为字符串。
toTimeString() 把 Date 对象的时间部分转换为字符串。
toDateString() 把 Date 对象的日期部分转换为字符串。
toGMTString() 请使用 toUTCString() 方法代替。
toUTCString() 根据世界时,把 Date 对象转换为字符串。
toLocaleString() 根据本地时间格式,把 Date 对象转换为字符串。
toLocaleTimeString() 根据本地时间格式,把 Date 对象的时间部分转换为字符串。
toLocaleDateString() 根据本地时间格式,把 Date 对象的日期部分转换为字符串。
UTC() 根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。
valueOf() 返回 Date 对象的原始值。