查找两个日期之间的日期Jquery / JS

时间:2012-11-13 12:19:52

标签: javascript jquery

我已经针对这个问题进行了广泛的搜索,到目前为止,我发现的所有代码都没有工作,我所做的代码也是如此,所以我开始担心这是不可能的。

我们有mm/dd/yy格式的两个日期,而不是dd/mm/yy,例如11/30/2012

然后我使用以下脚本:

if ( jQuery("#book_room_type").val() == "La Maison" ) {
    Date.prototype.DaysBetween = function() {  
        var intMilDay = 24 * 60 * 60 * 1000;  
        var intMilDif = arguments[0] - this;  
        var intDays = Math.floor(intMilDif/intMilDay);  
        return intDays;  
    }  
    var d1 = new Date(jQuery("#dateto").val());  
    var d2 = new Date(jQuery("#datefrom").val());  
    alert("you only have".d1.DaysBetween(d2)); 

    return false;   
}   

然而,这并没有返回dateto和datefrom字段之间的天数,它现在让我发疯,请任何建议表示赞赏。

谢谢,西蒙

参考kalvins建议:

if ( jQuery("#book_room_type").val() == "La Maison" ) {
    alert("test");
    var dategap = (jQuery("#dateto").val().getTime() - jQuery("#datefrom").getTime()) / (1000 * 60 * 60 * 24);
    alert(dategap); 
    alert("test2");
    return false;   
}   

第二次警报失败,没有提醒日期。

2 个答案:

答案 0 :(得分:1)

我建议您使用datejs - http://www.datejs.com/ - 来解析和计算日期。

或者,如果你想写简单的js

function(date1, date2) {
    return (date1.getTime() - date2.getTime()) / (1000 * 60 * 60 * 24);
}

以小数形式返回“days”。

放置结果或只是应用Math.abs(),您将得到正小数。

答案 1 :(得分:1)

代码有效,但在警报中使用点而不是+会出现串联错误

演示:http://jsfiddle.net/YgY5c/