let myDate = new Date();
myDate.getFullYear(); //获取完整的年份 2023
myDate.getMonth(); //获取当前月份(0-11,0代表1月)
myDate.getDate(); //获取当前日(1-31)
myDate.getDay(); //获取当前星期X(0-6,0代表星期天)
myDate.getTime(); //获取当前时间戳(从1970.1.1开始的毫秒数)
myDate.getHours(); //获取当前小时数(0-23)
myDate.getMinutes(); //获取当前分钟数(0-59)
myDate.getSeconds(); //获取当前秒数(0-59)
myDate.getMilliseconds(); //获取当前毫秒数(0-999)
myDate.toLocaleDateString(); //获取当前日期
myDate.toLocaleTimeString(); //获取当前时间
myDate.toLocaleString( ); //获取日期与时间
//---------------------------------------------------
// 判断当下是否为闰年
//---------------------------------------------------
const currentDate = new Date();
if (currentDate.isLeapYear()) {
console.log(currentDate.getFullYear() + '年是闰年');
} else {
console.log(currentDate.getFullYear() + '年不是闰年');
}
//---------------------------------------------------
// 输出不同格式的日期
//---------------------------------------------------
const date = new Date();
console.log(date.Format('yyyy-MM-dd')); // 输出 '2023-05-16'
console.log(date.Format('yyyy年MM月dd日')); // 输出 '2023年05月16日'
console.log(date.Format('hh:mm:ss')); // 输出 '00:00:00'
console.log(date.Format('yyyy-MM-dd HH:mm:ss')); // 输出 '2023-05-16 00:00:00'
//---------------------------------------------------
// 计算两个日期的时间差
//---------------------------------------------------
function daysBetween(DateOne, DateTwo) {
const one = new Date(DateOne);
const two = new Date(DateTwo);
const diffTime = Math.abs(two - one);
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
return diffDays;
}
const date1 = '2023-05-16';
const date2 = '2023-06-01';
console.log(daysBetween(date1, date2)); // 输出 '16'
//---------------------------------------------------
// 以指定格式添加时间间隔
//---------------------------------------------------
Date.prototype.DateAdd = function(interval, number) {
const newDate = new Date(this);
switch (interval) {
case 's': return new Date(newDate.getTime() + (1000 * number));
case 'n': return new Date(newDate.getTime() + (60000 * number));
case 'h': return new Date(newDate.getTime() + (3600000 * number));
case 'd': return new Date(newDate.getTime() + (86400000 * number));
case 'w': return new Date(newDate.getTime() + (604800000 * number));
case 'q': return new Date(newDate.getFullYear(), newDate.getMonth() + (3 * number), newDate.getDate());
case 'm': return new Date(newDate.getFullYear(), newDate.getMonth() + number, newDate.getDate());
case 'y': return new Date(newDate.getFullYear() + number, newDate.getMonth(), newDate.getDate());
}
}
const date = new Date();
console.log(date.DateAdd('d', 5)); // 在当前日期基础上添加 5 天
console.log(date.DateAdd('h', -3)); // 在当前日期基础上减去 3 小时
console.log(date.DateAdd('m', 2)); // 在当前日期基础上增加 2 个月
//---------------------------------------------------
// 计算不同日期所在月份的最大天数
//---------------------------------------------------
Date.prototype.MaxDayOfDate = function() {
const date = new Date(this.getFullYear(), this.getMonth() + 1, 0);
return date.getDate();
};
const date1 = new Date('2023-02-15');
const date2 = new Date('2023-05-31');
console.log(date1.MaxDayOfDate()); // 输出 '28',即 2023 年 2 月的最大天数
console.log(date2.MaxDayOfDate()); // 输出 '30',即 2023 年 5 月的最大天数
//---------------------------------------------------
// 计算当前日期所在年份的周数
//---------------------------------------------------
Date.prototype.WeekNumOfYear = function() {
const dayOfYear = ((this - new Date(this.getFullYear(), 0, 1)) / 86400000) + 1;
return Math.ceil(dayOfYear / 7);
};
const date = new Date('2023-05-16');
console.log(date.WeekNumOfYear()); // 输出当前日期所在年份的周数