繁体   English   中英

Date()对象的setDate()方法中的负数问题

[英]Problem with negative numbers in setDate() method of Date() object

做日历并绘制前一个月的日子,我试图在循环中使用setDate()方法来执行此操作,该方法具有一些负数作为输入。 我所看到的:

let testt = new Date();   //today 1 Feb 2019
    testt.setDate(0);
    console.log( testt.getDate());
    testt.setDate(1);
    console.log( 'after reset='+testt.getDate());

    testt.setDate(-1);
    console.log( testt.getDate());
    testt.setDate(1);
    console.log( 'after reset='+testt.getDate());

    testt.setDate(-2);
    console.log( testt.getDate());
    testt.setDate(1);
    console.log( 'after reset='+testt.getDate());

    testt.setDate(-3);
    console.log( testt.getDate());
    testt.setDate(1);
    console.log( 'after reset='+testt.getDate());

    testt.setDate(-4);
    console.log( testt.getDate());
    testt.setDate(1);
    console.log( 'after reset='+testt.getDate());

我在控制台中看到的是:

31
"after reset=1"
30
"after reset=1"
28
"after reset=1"
28
"after reset=1"
26
"after reset=1"

我希望日期会同步更改。 在控制台中,我将看到31、30、29、28、27个日期如何解决该问题?

您没有重置日期。 输出完整的日期对象,您会发现每次都在更改月份。 这是因为setDate()相对于对象中的当前月份。 您必须完全重置预期输出的日期。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM