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);
};
posted @   前端开发者-少校  阅读(185)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示