我只是在创建一个简单的日历,当用户第二天单击它时,它会显示第二天,非常简单的代码:

var dateSelected = new Date('02/06/2013'); //any date
var day = new Date(dateSelected.getTime() + 24*60*60*1000);
alert(day.getDate());

该日期适用于所有日期,但由于某种原因,日期为2013年10月27日时不会在第二天
var dateSelected = new Date('10/27/2013');

我似乎无法弄清楚为什么,如果我手动进行到第二天10月28日,它可以正常工作。

任何想法为什么会发生这种情况?

更新:
我通过添加时间和日期来修复它:
var dateSelected = new Date('10/27/2013 12:00:00');

最佳答案

我强烈怀疑这是因为您所在的时区-不幸的是,我们不知道。

在2013年10月27日,许多时区“回退”一个小时-这意味着一天实际上是25小时长。因此,如果将原始值增加24小时,则一天中的第一个小时开始的一天就不会更改。

从根本上讲,您需要确定是要增加一天还是要增加24小时-它们不是同一回事。您还需要确定您感兴趣的时区。不幸的是,我对Javascripts日期/时间API知之甚少,但这几乎肯定是造成问题的原因。

关于javascript - 为什么在2013年10月27日之后使用javascript的.getTime()+ 24 * 60 * 60 * 1000 get堆栈?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16884886/

10-09 20:37