2013-10-10 44 views
1

我正在使用jquery datepicker以获取两个日期。在我的情况下,我必须得到这种格式的日期d-M-y。我正在使用它,以便能够将这些值插入到oracle数据库中,而无需任何格式化。问题是我需要计算两个日期之间的月份。例如:1-Oct-13 - 30-Oct-16如何获取两个日期之间的月份

这是我应得的具体日期,我的JS:

LastAssimDatePicker = (function() { 
         $("#lastAssimilationDate").datepicker({ 
          yearRange: "-20:+100", 
          changeMonth: true, 
          changeYear: true, 
          dateFormat: "d-M-y" 
         }); 
        }), 

LastAssimDateOverPicker = (function() { 
         $("#lastAssimilationDateOver").datepicker({ 
          yearRange: "-20:+100", 
          changeMonth: true, 
          changeYear: true, 
          dateFormat: "d-M-y" 
         }); 
        }), 

上述日期被分配到2 variables - lastAssimilationDateLastAssimDateOver

的问题是,我真的找不到一个方法来计算两个日期之间的月份,我已经失去了约2小时。我很确定会有一个简单的解决方案,但作为初学者,我无法发现它。我知道这里有类似的话题,但我无法得到它的工作,或者它不适合我的问题。

+0

'我需要您能不能告诉一个例子日期来计算2 dates'之间的几个月? – Praveen

+0

问题是我不知道如何去做... – Slim

+1

你想知道范围包含多少个月吗? – mcamier

回答

3

既然你提到,你是不是应该改变我对你的解决方案的格式。

在@ T.J的帮助下。克罗德的Answer,我做到了这一点

d1 = new Date($("#lastAssimilationDate").val()); 
d2 = new Date($("#lastAssimilationDateOver").val()); 
alert(monthDiff(d1, d2)); 

入住这JSFiddle

不知道Nan被弹出,但我能看到区别。

enter image description here

+0

它说'NaN'我相信它不会骗你的格式。 – Slim

+0

@Slim但我能够得到月份的差异。不确定'Nan'在我的回答中查看照片。 – Praveen

+0

哇,我注意到,它不是在Firefox和IE下工作。 – Slim

4

工作演示http://jsfiddle.net/w54pq/如果你想既包括一个月试试这个演示:http://jsfiddle.net/yQyJq/

这将满足您的需求,可以有很多的版本吧。

请注意,可以有各种组合与您的需要,所以随时玩这个代码。其中

旧链接一个是我的老回答:

希望这有助于:)

代码

$('.start,.end').datepicker(); 

$('.hulk').click(function() { 
    var sDate = $('.start').val(); 
    var nDate = $('.end').val(); 

    var startdate = new Date(sDate); 
    var enddate = new Date(nDate); 

    enddate.setDate(enddate.getDate() - startdate.getDate()); 
    alert(monthDiff(startdate,enddate)); 
}); 


function monthDiff(d1, d2) { 
    var months; 
    months = (d2.getFullYear() - d1.getFullYear()) * 12; 
    months -= d1.getMonth() + 1; 
    months += d2.getMonth(); 
    return months <= 0 ? 0 : months; 
} 

工作射

enter image description here

3
function calcualteMonthYr(){ 
    var fromDate =new Date($('#txtFrom').val()); //datepicker (text fields) 
    var toDate = new Date($('#txtTo').val()); // datepicker 

    var months; 
     months = (toDate.getFullYear() - fromDate.getFullYear()) * 12; 
     months += toDate.getMonth(); 
     if (toDate.getDate() < fromDate.getDate()) 
     { 
      months--; 
     } 
    $('#txtTimePeriod2').val(months); 
} 
// it also consider dates so you would get exact months .. 
相关问题