年不使用Javascript代码

时间:2016-10-17 23:48:51

标签: javascript

有人可以解释这段代码。我不熟悉JS,所以我需要一些帮助来获得永久解决方案。错误的一年正在显示,直到我在底部显示的完整代码中更改了第5行。我几周前改变了代码,但它突然停止了工作。

我改变了第5行:

TITLE
YESTERDAY
99:99:99

要:

 if (myDate.getMonth() < 10) {

它有效,我不知道为什么。

这是完整的代码。我怀疑我的代码更改最终会停止工作。

有人能提供更好的解决方案吗?

 if (myDate.getMonth() < 1) {

});

1 个答案:

答案 0 :(得分:1)

看看你改变的那条线......

if (myDate.getMonth() < 10) {
   var betterMonth = "0" + (myDate.getMonth() + 1);

这表示&#34;如果当前月份小于10&#34;,其目的是将前导0添加到个位数月份。我在这里看到的问题是getMonth()返回是0个月的索引列表,因此0实际上是1月,1是2月,依此类推。

记住:

代码if (myDate.getMonth() < 10) {真的在说&#34;如果当前月份小于 11月,则添加前面的0&#34;。当你说错了&#34;年&#34;正在退货,你的意思是&#34;月&#34; ?因为我非常肯定这段代码会输出10月的010而不是10

我相信它应该......

if (myDate.getMonth() < 9) {

JSFiddle Example

有了这些知识,您现在可能会意识到为什么您的修复工作正常。将号码更改为&#34; 1&#34;如果月份在二月之前,则只会添加前面的0。您的解决方案一直有效,直到二月开始,您开始看到2/01/2016而不是02/01/2016