JavaScript系列复习(二):Date 对象
Date 对象
在JavaScript中,处理时间和日期最常用的就是Date对象了。
1、创建Date对象
创建 Date 对象: new Date(),以下四种方法同样可以创建 Date 对象:
var dateData = new Date(); var dateData = new Date(milliseconds); var dateData = new Date(dateString); var dateData = new Date(year, month, day, hours, minutes, seconds, milliseconds);
2、Date对象方法(常用)
var dateData = new Date(); /***** 获取日期属性 *****/ // 获取日期-日(1 ~ 31) var dateStr = dateData.getDate(); console.log(dateStr); // 17 // 获取日期-月份(0 ~ 11),一月为 0, 二月为 1, 以此类推 var monthStr = dateData.getMonth(); monthStr = parseInt(monthStr)+1; console.log(monthStr); // 1 // 获取日期-年份(4位数) var yearStr = dateData.getFullYear(); console.log(yearStr); // 2022 /***** 获取时间属性 *****/ // 获取时间-小时(0 ~ 23) var hourStr = dateData.getHours(); console.log(hourStr); // 15 // 获取时间-分钟(0 ~ 59) var minuteStr = dateData.getMinutes(); console.log(minuteStr); // 50 // 获取时间-秒钟(0 ~ 59) var secondStr = dateData.getSeconds(); console.log(secondStr); // 20 // 获取时间-毫秒数(0 ~ 999) var millisecondStr = dateData.getMilliseconds(); console.log(millisecondStr); // 179 /***** 获取星期属性 *****/ // 获取星期数:周日到周六(0~6) var dayStr = dateData.getDay(); console.log(dayStr); // 1 /***** 设置日期属性 *****/ // 设置日期-天(1 ~ 31) dateData.setDate('19'); // 设置日期-月份(0 ~ 11) dateData.setMonth('2'); // 设置日期-年份(4位数) dateData.setFullYear('2022'); /***** 设置时间属性 *****/ // 设置时间-小时(0 ~ 23) dateData.setHours('13'); // 设置时间-分钟(0 ~ 59) dateData.setMinutes('58'); // 设置时间-秒钟(0 ~ 59) dateData.setSeconds('55'); // 设置时间-毫秒数(0 ~ 999) dateData.setMilliseconds('888'); // todo... console.log(dateData); // Sat Mar 19 2022 13:58:55 GMT+0800 (中国标准时间)
注意:
getTime()不是获取时间戳的方法哦,它会返回 1970 年 1 月 1 日至今的毫秒数!毫秒数!毫秒数! 具体其他属性可参考 菜鸟教程[Date对象]
3、常用实例
(1)获取当前日期时间戳并格式化
通过Date对象方法库获取:
var dateStr = (new Date()).toLocaleDateString(); console.log(dateStr); // 2022/1/17 console.log(dateStr.replace(/\//g,'-')); // 2022-1-17 var timeStr = (new Date()).toTimeString(); console.log(timeStr); // 下午4:14:43 var dateTimeStr = (new Date()).toLocaleString(); console.log(dateTimeStr); // 2022/1/17 下午4:21:10
自定义获取:
function getFormatDate(){ var str = new Date(); var y = str.getFullYear(); var m = str.getMonth() + 1; m = m < 10 ? ('0' + m) : m; var d = str.getDate(); d = d < 10 ? ('0' + d) : d; var h = str.getHours(); h = h < 10 ? ('0' + h) : h; var minute = str.getMinutes(); var second = str.getSeconds(); minute = minute < 10 ? ('0' + minute) : minute; second = second < 10 ? ('0' + second) : second; return y + '-' + m + '-' + d+' '+h+':'+minute+':'+second; } console.log(getFormatDate()); // 2022-01-17 17:44:13
(2)判断闰年
闰年的判断条件:
一是年号能被4整除、但不能被100整除;二是年号能被4整除,又能被400整除。
function isLeapYear(year){ if((parseInt(year,10)%4 == 0 && parseInt(year,10)%100 != 0)||(parseInt(year,10)%4 == 0 && parseInt(year,10)%400 == 0)){ console.log(year+'年是闰年!'); }else{ console.log(year+'年不是闰年,是平年!'); } }; isLeapYear(2022); // 2022年不是闰年,是平年!
(2)计算时间差、天数差、月份差、年份差、星期差(时间间隔)
计算时间间隔:
function getTimeDiff(startT,endT,diffType){ diffType = diffType?diffType:''; startT = new Date(startT); endT = new Date(endT); var diffT = parseInt(endT-startT,10); // 毫秒数 // console.log(diffT); switch(diffType){ case 'seconds': return (diffT/1000); case 'minutes': return (diffT/60000); case 'hours': return (diffT/3600000); case 'dates': return (diffT/3600000/24); case 'weeks': return (diffT/3600000/24/7); case 'months': return ((endT.getMonth()+1)+((endT.getFullYear()-startT.getFullYear())*12)-(startT.getMonth()+1)); case 'years': return (endT.getFullYear()-startT.getFullYear()); default: return diffT; } }; console.log(getTimeDiff('2020-01-12','2022-02-17','months')); // 25
(3)电子钟表(Clock)
function displayClock(){ var clockTime = new Date(); var dateStr = clockTime.toLocaleDateString(); // timeStr var hours = clockTime.getHours(); hours = parseInt(hours)<10?'0'+hours:hours; var minutes = clockTime.getMinutes(); minutes = parseInt(minutes)<10?'0'+minutes:minutes; var seconds = clockTime.getSeconds(); seconds = parseInt(seconds)<10?'0'+seconds:seconds; var timeStr = hours+':'+minutes+':'+seconds; setTimeout(displayClock(),500); };
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步