我有这段代码:
f_sal = new Date( f_sal.getFullYear(), f_sal.getMonth(), f_sal.getDate() );
f_reg = new Date( f_reg.getFullYear(), f_reg.getMonth(), f_reg.getDate() );
var unDia = 1000 * 60 * 60 * 24;
difDias = Math.round((f_reg.getTime() - f_sal.getTime()) / unDia );
如果f_sal值为6/9/2012且f_reg值为7/9/2012,则difDias值为1天(正确)。但如果f_reg值为6/10/2012,则difDias值为31天......正确的结果为30天。
我的错在哪里?
答案 0 :(得分:1)
我认为使用Math.floor()
代替Math.round()
更有意义。
所以你应该这样做:
difDias = Math.floor((f_reg.getTime() - f_sal.getTime()) / unDia );
答案 1 :(得分:0)
好的,问题在于定义月份,因为它们基于零,所以现在我执行f_sal.getMonth() - 1,问题就解决了。