Javascript - 从当前日期开始的上个月计算

Javascript - Previous month computation from a current date

本文关键字:上个月 计算 开始 当前日期 Javascript      更新时间:2023-09-26

我有一个下面的JS,我在其中获得用户允许从后端脚本输入的最大日期:

var max_date = new Date(pdate + " " + ptime);

其中 pdate 和 ptime 是从脚本中获取的。

现在我需要将最小日期设置为比max_date少 1 个月

if (max_date.getMonth() == 0)
subtractyear = 1;
var min_date = new Date(Date.UTC(max_date.getFullYear() - subtractyear,max_date.getMonth() - 1,max_date.getDate(),max_date.getHours(),0,0));

我的问题是,如果max_date是 3 月 31 日 - 那么min_date会展期到 2 月 28 日、2 月 29 日、2 月 31 日或 2 月 30 日吗?

如果形成的日期不正确 - 比如 2 月 30 日,我该如何纠正?

简单主题 月份乘以 1 将获得有效日期 - setMonth方法永远不会返回无效的Date对象(与 setDatesetYearDate 构造函数相同):

var date = new Date(2012, 02, 31); // 2012-03-31
date.setMonth(date.getMonth() - 1); // This gets 2012-03-02

我不太清楚你预计的日期是上个月的最后一天还是一个月前的一天