我有一个下面的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日,我该如何纠正?
答案 0 :(得分:6)
简单主题1月将获得有效日期 - 永远不会setMonth
方法返回无效Date
对象(与setDate
,setYear
相同Date
构造函数):
var date = new Date(2012, 02, 31); // 2012-03-31
date.setMonth(date.getMonth() - 1); // This gets 2012-03-02
我不太清楚您的预期日期,上个月的最后一天或仅一个月前的那天?