日历的jQuery UI最小/最大日期差异

时间:2012-08-22 14:59:10

标签: jquery date user-interface calendar

我正在使用一个插件,它在预订表格中使用jquery UI作为其日历,并希望显示提醒,如果第二个日期少于第一个日期7天,则不允许提交表单,或者如果距离第一次约会超过30天。

所以[01.01.2012] + [02.01.2012]无效

[01.01.2012] + [15.01.2012]会工作,任何想法如何通过jquery实现这一点?非常感谢提前!

2 个答案:

答案 0 :(得分:1)

您可以使用javascript日期对象来完成。 假设Date1是Date2中的第一个日期对象,第二个是。

var dateMin = new Date(Date.parse(Date1)); //you may not need to parse. 
var dateMax = new Date(Date.parse(Date1)); //new Date(Date1) may work. Not sure

dateMin.setDate(Date1.getDate() + 7);
dateMax.setDate(Date1.getDate() + 15);

if (Date2 < dateMax && Date2 > dateMin) {
    //code
} else {
    //alert
}

你也可以做月,年,小时等同样的事情。

答案 1 :(得分:0)

jsFiddle DEMO

基本上,这里的要点是你需要Date.parse()两个日期(将它们带入毫秒)然后将这些毫秒除以/ 1000(得到秒数)/ 60(达到分钟数)/ 1440(得到天)。

然后测试一下它是否已经超过7并且你已经全力以赴!

$('#submit').on('click', function () {
    var toDate = Date.parse($('#toDate').val()),
        fromDate = Date.parse($('#fromDate').val()),
        difference = toDate - fromDate;

    var days = difference / 1000 / 60 / 1440;

    if ( days < 7 ) {
        alert('Please give at least 7 days between the dates!');
        return false; // stop from submitting        
    }

    // VALID
    else {
        alert('success!');
    }
});​