基于 JavaScript 中的 Date 类型实现指定日期和天数的加减运算

一行代码,方便复制。

// 生日天数倒计时
var countDayToNextBirthday = function (year, month, day) {
    
     return Number.parseInt((new Date(year, month - 1, day) - new Date()) / 1000 / 60 / 60 / 24); };
console.log("从今天起到下次生日还剩的天数:", countDayToNextBirthday(2024, 2, 21));

在这里插入图片描述

Intro

刚才突然想到,我还有多久就要过27岁的生日了呢。
年近三十,一事无成。

以下基于 JavaScript 中的 Date 对象封装一些方法。

基本方法

构造方法–如何初始化一个Date对象?

new Date()
// Mon Jun 19 2023 23:32:33 GMT+0800 (中国标准时间)
new Date().toLocaleString()
// '2023/6/19 23:32:38'
new Date(2024, 2-1, 21).toLocaleString()
// '2024/2/21 00:00:00'
new Date("02 21, 2024").toLocaleString()
// '2024/2/21 00:00:00'

在这里插入图片描述
这里暂时只提到以上三种。

Date的构造方法的更多使用方式见:https://blog.csdn.net/Aiyining/article/details/87925443
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Date

Date 对象的天数加减法

今天是 2023-06-19 ,那100天之后的日期是?

a = new Date()
// Mon Jun 19 2023 23:36:53 GMT+0800 (中国标准时间)
a.toLocaleString()
// '2023/6/19 23:36:53'
a.setDate(a.getDate() + 100);
// 1695829013049
a.toLocaleString()
// '2023/9/27 23:36:53'

在这里插入图片描述

参考:https://www.cnblogs.com/poterliu/p/10220135.html
在这里插入图片描述

【工具方法封装】

// 获取指定年月日下的日期
function getSpecificDate(year, month, day) {
    
    
    return new Date(year, month - 1, day);
}

// 获取指定日期前/后n多天的日期,days可为正可为负。
function dateAddDays(date, days) {
    
    
    var newDate = new Date(date);   // 复制一个Date对象
    newDate.setDate(date.getDate() + days);
    return newDate;
}

// 获取两个指定日期之间的天数
function getDaysBetween(startDate, endDate) {
    
    
    return (endDate - startDate) / 1000 / 60 / 60 / 24;
}

// 打印某个日期
function showDate(date) {
    
    
    console.log(date.toLocaleString());
}

var birthday = getSpecificDate(2024, 2, 21);
showDate(birthday);

var minus100 = dateAddDays(birthday, -100);
showDate(minus100);
var minus200 = dateAddDays(birthday, -200);
showDate(minus200);

var daysTo27Birthday = getDaysBetween(new Date(), birthday);
console.log(daysTo27Birthday);

在控制台执行一下:

在这里插入图片描述

最后

总是感觉时间过得很快,年龄一岁一岁地增长,什么事也没干成,什么问题也没解决干净。
今天算了一下,我在过自己的27岁生日之前,还有246天可以使用。
可以做很多事。
加油。

每一天的体验机会都是无价的。

猜你喜欢

转载自blog.csdn.net/wuyujin1997/article/details/131297327