【发布时间】:2017-02-01 13:01:42
【问题描述】:
function datecheck(){
var dt1 = new Date();
dt1.setUTCFullYear("2017");
dt1.setUTCDate("1");
dt1.setUTCMonth("1");
alert(dt1.getUTCMonth());
}
当我执行这个函数时,我得到 0 作为警报,但如果是 setUTCMonth("2")。我得到 2 的警报。同样,如果给出 3,4,5,6,7,8...,那么它会在同一月份发出警报,那么 1 月份有什么问题?
但我也观察到如果
function datecheck(){
var dt1 = new Date();
dt1.setUTCFullYear("2017");
dt1.setUTCMonth("1");
dt1.setUTCDate("1");
alert(dt1.getUTCMonth());
}
行为改变它在 1 被传递时开始警告 0。我完全搞不懂这是怎么回事……
谁能告诉我哪里出错了。
提前致谢。
【问题讨论】:
-
JavaScript 月份从 0 到 11。不,这没有意义。不,它不能更改,因为它会破坏向后兼容性。是的,它把我们都逼疯了。
-
月(以及日和年)也是数字,而不是字符串。当你应该写
1时,你为什么还要花额外的精力写"1"? -
@JaredSmith 我个人喜欢它 -
['Jan','Feb','Mar'....][date.getUTCMonth()]是一个巧妙的技巧:D -
@NiettheDarkAbsol 是的,很确定我们都曾在某个时候写过
const MONTHS = []:)
标签: javascript date monthcalendar