我想了解两个日期在不同月份或年份时的区别。我用下面的代码
var d1 = lastexecdate.split(“。”);
var d2 = jabusinessdate.split(“。”);
var date1 = new Date(d1 [2],d1 [1],d1 [0]);
var date2 = new Date(d2 [2],d2 [1],d2 [0]);
var timeDiff =(date2.getTime()-date1.getTime());
var diffdays = Math.ceil(timeDiff /(1000 * 3600 * 24));
当我使用2014年10月17日和2014年10月19日这样的日期时,它给了我两个完美的区别。但是,当我使用2014年10月31日和2014年11月11日这样的日期时,它给我的结果为零,而实际结果应该是1。也就是说,当月份或年份不同时,它会显示异常结果。请给我建议一些想法或一些功能,我可以用它们来获得适当的结果。
在JavaScript中,月份从0开始索引。因此,一月的索引为0,十二月的索引为11。在您指定2014年10月31日的情况下,实际上必须将9作为month参数传递给日期构造函数。与日期构造器类似,而不是11。
例子:
对于“ 31.10.2014”:
var date1 = new Date(2014,9,31);
对于“ 1.11.2014”:
var date2 = new Date(2014,10,1);
现在,您可以按照以下步骤进行计算:
var timeDiff =Math.abs(date2.getTime() - date1.getTime());
var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));
这将得出结果1。
因此,您要做的就是从代码中的月份中减去1,如下所示:
var date1= new Date(d1[2], d1[1] - 1,d1[0]);
var date2= new Date(d2[2], d2[1] - 1,d2[0]);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句