如何计算Javascript中的月份差异?
请注意有类似的问题,例如: 在Javascript中计算日期差异的最佳方法是什么
但这些都是基于MS差异,当几个月有不同的天数!
有没有简单的方法来计算2个日期之间的月差?
为了清楚起见,我需要知道日期跨越多少个月,例如:
Jan 29th 2010, and Feb 1st 2010 = 2 months
Jan 1st 2010, and Jan 2nd 2010 = 1 month
Feb 14th 2010, Feb 1st 2011 = 13 months
Feb 1st 2010, March 30th 2011 = 14 months
Run Code Online (Sandbox Code Playgroud)
Tom*_*len 22
DisplayTo.getMonth() - DisplayFrom.getMonth() + (12 * (DisplayTo.getFullYear() - DisplayFrom.getFullYear())));
Run Code Online (Sandbox Code Playgroud)
getMonth减去getMonth会给出两个月之间的月差异.
然后我们将12乘以年数差异,并将其添加到结果中,给出完整的月份跨度.
[ 编辑 ]根据评论,我立即纠正.使用接受的答案,我会使用像:
var datefrom = new Date('2001/03/15')
,dateto = new Date('2011/07/21')
,nocando = datefrom<dateto ? null : 'datefrom > dateto!'
,diffM = nocando ||
dateto.getMonth() - datefrom.getMonth()
+ (12 * (dateto.getFullYear() - datefrom.getFullYear()))
,diffY = nocando || Math.floor(diffM/12)
,diffD = dateto.getDate()-datefrom.getDate()
,diffYM = nocando ||
(diffY>0 ? ' Year(s) ' : '')
+ diffM%12+' Month(s) '+(diffD>0? (diffD+' day(s)') : '') ;
console.log(diffYM); //=> 10 Year(s) 4 Month(s) 6 day(s)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14319 次 |
最近记录: |