jQuery测试2个月

jQuery测试2个月,jquery,Jquery,我正在寻找一种方法来检查第一个选择菜单的日期是否早于第二个。 任何帮助都将不胜感激。谢谢 <select id="outbound_month_and_year"> <option selected="" value="-1">Departing</option> <option selected="" value="NOV2013">November 2013</option> <option value="DEC2013"&g

我正在寻找一种方法来检查第一个选择菜单的日期是否早于第二个。 任何帮助都将不胜感激。谢谢

<select id="outbound_month_and_year">
<option selected="" value="-1">Departing</option>
<option selected="" value="NOV2013">November 2013</option>
<option value="DEC2013">December 2013</option>
<option value="JAN2014">January 2014</option>
<option value="FEB2014">February 2014</option>
<option value="MAR2014">March 2014</option>
<option value="APR2014">April 2014</option>
<option value="MAY2014">May 2014</option>
<option value="JUN2014">June 2014</option>
<option value="JUL2014">July 2014</option>
<option value="AUG2014">August 2014</option>
<option value="SEP2014">September 2014</option>
<option value="OCT2014">October 2014</option>
</select>

<select id="return_month_and_year">
<option selected="" value="-1">just one way</option>
<option value="NOV2013">November 2013</option>
<option value="DEC2013">December 2013</option>
<option value="JAN2014">January 2014</option>
<option value="FEB2014">February 2014</option>
<option value="MAR2014">March 2014</option>
<option value="APR2014">April 2014</option>
<option value="MAY2014">May 2014</option>
<option value="JUN2014">June 2014</option>
<option value="JUL2014">July 2014</option>
<option value="AUG2014">August 2014</option>
<option value="SEP2014">September 2014</option>
<option value="OCT2014">October 2014</option>
</select>

离开
2013年11月
2013年12月
2014年1月
2014年2月
2014年3月
2014年4月
2014年5月
2014年6月
2014年7月
2014年8月
2014年9月
2014年10月
只有一条路
2013年11月
2013年12月
2014年1月
2014年2月
2014年3月
2014年4月
2014年5月
2014年6月
2014年7月
2014年8月
2014年9月
2014年10月
你可以这样试试

$('select').on ('change', function () {
var date1 = new  Date($('#outbound_month_and_year').val());
    var date2 = new  Date($('#return_month_and_year').val());
    if (date1.getTime() < date2.getTime() ) {
    alert("date1 is less than date2");
    }
});
$('select')。在('change',函数(){
var date1=新日期($(“#月和年”).val();
var date2=新日期($('#return_month_and_year').val());
if(date1.getTime()
这在chrome中是可行的,但我认为它可能具有跨浏览器兼容性

试试这个

$('select').on ('change', function () {
if($('#outbound_month_and_year').val()!=-1 && $('#return_month_and_year').val()!=-1){
    var date1 = new  Date($('#outbound_month_and_year').val());
    var date2 = new  Date($('#return_month_and_year').val());
    if (date1.getTime() < date2.getTime() ) {
     // show message
    }
}
});
$('select')。在('change',函数(){
如果($(“#出站月和年”).val()!=-1&$(“#返回月和年”).val()!=-1){
var date1=新日期($(“#月和年”).val();
var date2=新日期($('#return_month_and_year').val());
if(date1.getTime()
因为您说无法更改HTML,所以需要使用字符串操作将日期转换为可以解析的格式。这是一个丑陋的代码,但它是有效的:

var $out = $('#outbound_month_and_year'),
    $in = $('#return_month_and_year');

$out.add($in).on('change', function() {
    var outDate = getDate($out.val()),
        inDate = getDate($in.val());

    if (outDate && inDate) {
        if (outDate < inDate) {
            $('#result').text('Outbound is before');
        }
        else if (outDate > inDate) {
            $('#result').text('Outbound is after');
        }
        else {
            $('#result').text('Outbound is the same');
        }
    }
});

function getDate(val) {
    if (val == -1)
        return false;

    var day = '01';
    var month = val.substr(0, 3);
    var year = val.substr(-4);
    return new Date(day + ' ' + month + ' ' + year);
}
var$out=$(“#出站月和年”),
$in=$(“#返回月和年”);
$out.add$in.on('change',function()){
var outDate=getDate($out.val()),
inDate=getDate($in.val());
如果(过期和过期){
如果(过期<过期){
$('#result').text('Outbound is before');
}
否则如果(过期>过期){
$('#result').text('出站在后面');
}
否则{
$(“#结果”).text(“出站相同”);
}
}
});
函数getDate(val){
如果(val==-1)
返回false;
风险值日='01';
var月=val.substr(0,3);
var年份=val.substr(-4);
返回新日期(天+月+年);
}


请注意,此解决方案非常脆弱,因为它很容易被更改的
select
值的格式破坏。如果发生这种情况,您需要相应地修改
getDate()
函数。

您需要将值更改为字符串,这些字符串可以轻松转换为
Date
类型,例如2014年6月1日
,转换它们并进行比较。我没有访问此类内容的权限我认为您指的是markupAh,我明白你的意思。返回一个无效的date@Alex没问题,很乐意帮忙