介绍
介绍
JavaScript 内建日期时间对象 Date,可以用来处理日期时间。
可以获取时间,可以设置时间,可以进行时间转换。
使用
特点
创建日期对象
var dateObj = new Date();
获取年
年数字和获取到的一致,不做调整
var yearNum = dateObj.getFullYear();
获取月
月份数字是从 0 开始计算的,十二个月对应 0~11 这12个数字
也就是说 0 是一月,11 是十二月,所以这里我们要 +1
var monthNum = dateObj.getMonth()+1;
获取日
日数字和获取到的一致,不做调整
var dayNum = dateObj.getDate();
获取星期
星期数字是 1~6 对应一周的礼拜一到礼拜六,数字 0 对应礼拜天
var weekNum = dateObj.getDay(); if(weekNum == 0){ weekNum = 7; }
获取月份天数
我们通过设置日子为 0 来获取当月的天数
但是比较坑爹的地方是 0 月本来应该是得到 1 月的天数,但实际得到的是 12 月的天数,而 1~11 月得到天数就是 1~11 月的天数
所以,尼玛老子头都大了~~
var maxDaysMonth = dateObj.getMonth()+1; if(maxDaysMonth == 12){ maxDaysMonth = 0; } var maxDaysInMonth = new Date(yearNum, maxDaysMonth, 0).getDate();
总结
我们得到的时间数字和我们习惯的数字不一样,所以我们进行了本地化的转换
但是记得一点,就是传入到 Date 对象里的参数的数字还是要按人家的逻辑才行
并且创建 Date 对象时候需要为每个参数提供一个值,否则该参数就默认为 0 值
var myDate = new Date(2020, 1, 11, 12, 23, 59);
如果要实现对某一个时间进行向前或者向后偏移的功能,可以使用如下方法
当前时间向前偏移 1 天
var nowDate = new Date(); nowDate.setDate(nowDate.getDate()+1);
当前时间向前偏移 8 个小时
var nowDate = new Date(); nowDate.setHours(nowDate.getHours()+8);