javascript + jquery中的日期比较

Date comparision in javascript + jquery

本文关键字:日期 比较 jquery javascript      更新时间:2023-09-26

我在一个javascript函数中有这个脚本片段来验证我的表单中的一些字段

var situacao = $("select[name='situacaoCRC']").val();
var dta_emissao = $("input[name='dtaEmissao']").val();
var dta_validade = $("input[name='dtaValidade']").val();
if (situacao == -1) {
    alert('Selecione um estado para o CRC.');
return false;
}
if (dta_emissao === undefined || dta_emissao === "") {
    alert('Data de emissão do CRC inválida.');
return false;
}
if (dta_validade === undefined || dta_validade === "") {
alert('Data de validade do CRC inválida.');
return false;
}
if (dta_validade <= dta_emissao) {
    alert('A data de validade do CRC deve ser posterior à data de emissão.');
return false;
}

字段dta_validade和dta_emissao都是DD/MM/YYYY格式的日期

当我输入这些字段时,我们说dta_validade = 01/12/2011和dta_emissao = 01/01/2012,有了这些数据,我在第4 IF

中得到警报

您需要创建2个日期对象,然后才能比较它们。你可以在这里找到一些信息:http://www.w3schools.com/js/js_obj_date.asp

var test_date1;
test_date = new Date(2011, 11, 1); //Year, Month (zero based), Day 

(在这种情况下,您需要自己解析年、月和日的值)

您也可以使用Datejs使事情变得更容易:http://www.datejs.com

或者,看到你已经在使用jQuery,使用jQuery UI Datepicker: http://jqueryui.com/demos/datepicker/

$.datepicker.formatDate( format, date, settings ) 
// Format a date into a string value with a specified format.
$.datepicker.parseDate( format, value, settings ) 
// Extract a date from a string value with a specified format.

您可以将最后一个if更改为:

if (parseDate(dta_validade) <= parseDate(dta_emissao)) {
    alert('A data de validade do CRC deve ser posterior à data de emissão.');
    return false;
}

可以加上:

function parseDate(s) {
    var a = s.split('/');
    return new Date(parseInt(a[2]), parseInt(a[1])-1, parseInt(a[0])); // month is zero-based
}

别忘了错误处理