JavaScript-如何计算一个月以前、半年以前或者30天以前、180天以前

这是在写日历路上的一小步。

这种计算当前日期间隔的使用场景颇多,特别是旅游、民宿网站之类的。

1、这种是比较粗暴的写法,直接设置 1 天的时间作为种子,主要转入要计算的天数即可

function daysBeforeNow(days) {
    const oneDay = 24 * 60 * 60 * 1000
    const now = new Date()
    return now.getTime() - (days * oneDay)
}

function daysAfterNow(days) {
    const oneDay = 24 * 60 * 60 * 1000
    const now = new Date()
    return now.getTime() + (days * oneDay)
}

2、 Date 个人日常使用的频率很低,一般都是使用别人封装好的组件,偶然发现还可以有这种使用方式,不过要注意的是 setDate 是会直接影响原变量的,所以如果需要用在多个地方,最好以函数之类的包裹,不然你会发现怎么时间设置这么奇怪(表示中过招)。

function daysBeforeNow(days) {
    const now = new Date()
    return new Date(now.setDate(now.getDate() - days)).getTime()
}

function daysAfterNow(days) {
    const now = new Date()
    return new Date(now.setDate(now.getDate() + days)).getTime()
}

为了方便示例,以上的方法都单独为两个。


参考:

https://www.codegrepper.com/code-examples/javascript/how+to+get+30+days+back+date+in+javascript

https://www.convertunits.com/dates/