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

时间:2012-08-14 09:13:20

标签: javascript

我有一个下面的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 个答案:

答案 0 :(得分:6)

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

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

我不太清楚您的预期日期,上个月的最后一天或仅一个月前的那天