我有一个开始日期和时间,我检查结束日期和时间。在检查某个月内的两个日期时,一切似乎都能正常工作,但如果我从一个月结束到另一个月的开始,我会得到奇怪的结果。
如果我有一个开始日期和时间:
//08/31/2014 08:00AM
var AugEnd = moment([2014, 08, 31, 08, 00]);
结束日期和时间:
//09/01/2014 08:00AM
var SeptStart = moment([2014, 09, 01, 08, 00]);
我应该得到24的结果,但是我给了0而不是
var Time1 = SeptStart.diff(AugEnd, 'hours', true);
这似乎发生在大多数月份结束时,除了07/31 - 08/01和12/31 - 01/01。
这是一个jsfiddle:http://jsfiddle.net/65a83ckz/4/
我做错了什么?或者这是一个错误? (使用moment.min.js,版本2.8.2)
感谢Mudaser Ali的解决方案:
月份从0开始,
January = 0
February = 01
March = 02
April = 03
May = 04
June = 05
July = 06
Aug = 07
Sept = 08
Oct = 09
Nov = 10
Dec = 11
答案 0 :(得分:0)
首先,你的约会是inValid
var SeptStart = moment([2014, 08, 31, 08, 00]);
是9月的日期,因为在js月从0开始所以8 = 9月和9月有30天而不是31天所以它应该是
var SeptStart = moment([2014, 08, 30, 08, 00]);
所以更改后你会得到正确的结果
var SeptEnd = moment([2014, 09, 01, 08, 00]); //it is correct date
和
var SeptTime = SeptEnd.diff(SeptStart, 'hours', true); //equals to 24 hrs