gpt4 book ai didi

javascript - 在 JavaScript 中从日期(日期为第一天)减少一天导致日期变为零

转载 作者:行者123 更新时间:2023-11-28 09:14:40 24 4
gpt4 key购买 nike

当我尝试从日期减少一天时,日期已变为零,而不是在 Java 脚本中调整为上个月的日期。下面是示例。

var dt = new date(2012, 2, 1);
dt.setDate((dt.getDate() - 1));

logger.info(dt.getFullYear()+"-"+(dt.getMonth()+1) + "-" + dt.getDate());

Result is : 2012-2-0

最佳答案

它工作得很好,我认为你误解了数字是什么(尽管我从来没有得到0)。虽然您确实使用了 new date(2012, 2, 1),但需要大写 - new Date(2012, 2, 1)

当您使用:new Date(2012, 2, 1)时,它会创建日期“2012年3月1日”,因为月份(第二个参数)是从0开始的.

减去一天后,它将变为“2012-2-29”,即“2012 年 2 月 29 日”。

var dt = new Date(2012, 2, 1);    // March 1st, 2012
dt.setDate((dt.getDate() - 1));

console.log(dt.getFullYear() + "-" + (dt.getMonth() + 1) + "-" + dt.getDate()); // February 29th, 2012

演示: http://jsfiddle.net/8PyFR/3/

您似乎已经了解 getMonth() 返回一个从 0 开始的月份,因此您添加了 1。但是正如您获得一个从 1 开始的月份(通过添加 1)一样,您必须适应设置基于 1 的月份时(通过减去 1)。三月通常为 3,但您需要使用 2。

关于javascript - 在 JavaScript 中从日期(日期为第一天)减少一天导致日期变为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15817974/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com