使用jquery进行日期比较的有效而准确的方法是什么?

时间:2012-02-25 08:56:39

标签: jquery date

我有两个加载jquery masked date input的文本框。

<input type="text" id="frm_date" name="frm_date" />

<input type="text" id="to_date" name="to_date" />

在屏蔽输入的帮助下,值以“/”分隔,并采用类似于02/03/2011的方式。

我想准确验证TO日期不应低于起始日期,起始日期不应大于TO日期,并且TO日期和起始日期不应相等,只需提供警报即可框以通知用户更正值。

这样做的最佳方式是什么?

2 个答案:

答案 0 :(得分:2)

您应该使用JavaScript Date Object

  1. 使用setFullYear()将日期转换为Date对象,或者只使用Date函数的构造函数。
  2. 使用getTime()函数比较日期。

答案 1 :(得分:0)

你想要一个日期选择器吗? jsFiddle

$('#to_date, #frm_date').datepicker({
    onSelect: function(dateText, inst) {
        var from, to, fromText, fromArray, toText, toArray;

        fromText = $('#frm_date').val();
        toText = $('#to_date').val();

        if(fromText && toText){
            fromArray = fromText.split('/');
            toArray = fromText.split('/');
            from = new Date(parseInt(fromArray[2], 10), parseInt(fromArray[0], 10), parseInt(fromArray[1], 10));
            to = new Date(parseInt(toArray[2], 10), parseInt(toArray[0], 10), parseInt(toArray[1], 10));

            if( from.getTime() >= to.getTime() ){
                alert('start after finish date!')
            }
        }
    }
});

或者使用裸输入:

$('#to_date, #frm_date').change(function() {
    var from, to, fromText, fromArray, toText, toArray;
    //same everything here
});