2011-12-01 95 views
3

如何获得jquery的月份差异,而我的输入只包含月份和年份,而不是一天?我的意见是:(4-2011)致:(5-20​​15)。如何获得只有月份和年份的jquery的月份差异

+2

锄,哈哈。 :D恐怕你必须在你的问题上更具体一些。您想计算从一个日期到另一个日期的月份,但在其中一个输入中,您只记录月份和年份?你可以算一整个月?几个月为小数?再次,更具体。 – OptimusCrime

+0

@OptimusCrime我认为他的意思是他只想知道这两个日期之间有多少个月。这似乎很明显。 –

+0

我的投入是从下拉仅仅月和年两个不同年份支付joomal(Jom Social) – irfan

回答

5

你可以这样做:

var a = "1-2014"; 
var b = "4-2015"; 
a = a.split('-'); 
b = b.split('-'); 
months = (b[1]-a[1]) * 12 + (b[0]-a[0]); 
alert(months); 
+0

感谢它的工作;) – irfan

+0

@Nicola。好答案 。你就像一个聪明的人;-) – chhameed

+0

@irfan如果这回答你的问题,你应该接受的答案 –

0

您可以通过以下两种功能的JavaScript通过您的字符串。如果您需要计算未来两个DateTime值之间的月数,我已将它们分开。

使用

var monthDiffVal = monthDiffFromString("4-2011", "5-2015"); 

功能

// This function takes your two string dates, converts them into DateTimes 
// and passes them to the monthDiff function below 

function monthDiffFromString(s1, s2) { 
    var startString = s1; //4-2011; 
    var endString = s2; //5-2015; 
    var startStringArr = endString.split('-'); 
    var endStringArr = endString.split('-'); 

    var startDate = new DateTime(startStringArr[1], startStringArr[0], 01); 
    var endDate = new DateTime(endStringArr[1], endStringArr[0], 01); 

    return monthDiff(date1, date2); //pass your dates to the function above 
} 

// This function calculates the number of months between two dates 

function monthDiff(date1, date2) { 
    var m; 
    m = (date2.getFullYear() - date1.getFullYear()) * 12; 
    m -= date1.getMonth() + 1; 
    m += date2.getMonth(); 
    return m; 
} 
+0

他没有完整的日期,你应该提供一个完整的答案不只是一个提示,这更属于评论。 –

+0

我用一个例子更新了我的答案。感谢您的反馈。 – Nick

0
var a = new Date(2011, 4), 
    b = new Date(2015, 5), 

    months = (b-a)/2628000000;