当两个日期处于不同的月份或年份时,我想得到它们之间的差异。我使用了下面的代码
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));
当我使用诸如 17.10.2014 和 19.10.2014 之类的日期时,它给了我两个完美的差异。但是当我使用诸如 2014 年 10 月 31 日和 2014 年 11 月 11 日之类的日期时,它给我的结果为零,而实际结果应该是 1。也就是说,当月份或年份不同时,它会显示结果异常。请给我一些想法或一些功能,我可以用它们来获得合适的结果。
最佳答案
在 JavaScript 中,月份从 0 开始索引。因此,一月的索引为 0,十二月的索引为 11。在您指定日期 2014 年 10 月 31 日的情况下,您实际上必须将 9 作为月份参数传递给日期构造函数。与日期构造函数类似,10 而不是 11。
例子:
对于“2014 年 10 月 31 日”:
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]);
关于javascript - 如何在不同月份的javascript中获取两个日期之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29314331/