【发布时间】:2020-05-04 20:04:55
【问题描述】:
我正在尝试找到一种可靠地从 javascript 日期对象中减去 1 个月的方法。
我有这个代码:
var shippedDate = new Date('12/31/2020');
var tempDate = new Date(shippedDate.setMonth(shippedDate.getMonth() - 1)); //subtract 1 month
alert(tempDate);
这段代码运行后 tempDate 中的值是 12/1/2020,而实际上它应该是 11/30/2020。
我用这个在线日期计算器检查了我的数学:https://www.timeanddate.com/date/dateadded.html?m1=12&d1=31&y1=2020&type=sub&ay=&am=1&aw=&ad=&rec=
谢谢。
【问题讨论】:
-
月份索引在 JavaScript 日期中从零开始。
-
代码正确,值在技术上是正确的。由于是凌晨 12 点,所以日期显示为 12 月 1 日。
-
@user120242 那么解决办法是从 shippingDate 中减去 1 分钟吗?
-
不,看看 RobG 的回答。他明白了
标签: javascript date