JavaScript 中 Date() 的问题 - 它增加了一个月



我在JavaScript中Date()有一个奇怪的问题。

我有以下简单的代码:

var date = new Date(2013, 11, 01, 00, 00, 0, 0);
alert(date);

这应该将日期设置为 01 November 2013 00:00:00:00 但它将其设置为 12 月?正如你在这个小提琴中看到的http://jsfiddle.net/CBqK2/

怎么了?

JavaScript 月份是基于 0 的,只是为了让你感到困惑。

来自 MDN 的 Date 构造函数:

month 表示月份的整数值,从 0 表示 1 月开始,到 11 表示 12 月。

所以对于你的例子:

var date = new Date(2013, 10, 01, 0, 0, 0, 0);
alert(date);

你可以在这里阅读更多关于MDN Date的信息。

将第二个值设置为 10。日期类以 0 开头表示一月,就像在数组;)

Date() 根据本地时间返回指定日期的月份(从 0 到 11)。

例如:一月是0,二月是1,依此类推。

如果您想从0开始使用以下格式

var date = new Date('2013/10/01');

日期具有从零开始的工作日月份列表。

几个月,1 月至 12 月为 0-11,工作日为周日至周六为 0-6。

当你说。

var date = new Date('1381751517000')//我在 2013-10-14T11:51:00 中使用了以毫秒为单位的时间戳,因为 js 接受以毫秒为单位的时间戳。

现在如果我们说

day = date.getDay();

它返回 1,即星期一,

month = date.getMonth()

它返回 9 点,即 10 月。

同样,当我们使用格式('YYYY,MM,DD,HH,mm,ss,ms')创建日期时,我们也应该以相同的方式给出输入。

最新更新