0

在 jquery 中,我正在尝试验证日期,但如果低于 12,我的日期字段被视为每月。

test data:
                  dd/mm/yyyy
 from date Value :07/03/2013
 to date  value  :05/06/2013

Javascript:

var startdatevalue = $('#txtFromDate').val();
var Todatevalue = $('#txtToDate').val();
if (Todatevalue < startdatevalue) {
    alert("To Date should be greater than From Date.");
    $('#txtToDate').focus();
    return false;
}

而comapring条件设置为true,这在我的场景中是false。迄今为止更大。快速解决方案将有所帮助....

4

5 回答 5

1

您可以使用 jquery datepicker (jquery UI) 并执行以下操作

var startDate = $.datepicker.formatDate('dd/mm/yy', $('#txtFromDate').val());
var endDate= $.datepicker.formatDate('dd/mm/yy', $('#txtToDate').val());

然后在 startDate 和 endDate 上执行您的 checn

于 2013-08-30T07:35:52.043 回答
0

我建议使用 moment.js 来对日期进行操作。标准的 javascript 日期工具有点差。在此处查看库:http: //momentjs.com/

于 2013-08-30T07:46:49.570 回答
0

解决方案 1: 正则表达式 ;):

var dateString = "30/08/2013";
var reggie = /(\d{4})/(\d{2})/(\d{2})/;
var dateArray = reggie.exec(dateString); 
var dateObject = new Date(
    (+dateArray[3]),
    (+dateArray[2])-1, // Note that month starts at 0!
    (+dateArray[1]),
    0,
    0,
    0
);

解决方案2:

var dt = '30/08/2013'.split('/');

var dateObject = new Date(dt[0], dt[1], dt[2], 0, 0, 0);
于 2013-08-30T07:40:40.797 回答
0
var startdatevalue = "07/03/2013".split('/');
var todatevalue = "05/06/2013".split('/');
var t=Date.parse(todatevalue[2]+"/"+todatevalue[1]+"/"+todatevalue[0]);
var f=Date.parse(startdatevalue[2]+"/"+startdatevalue[1]+"/"+startdatevalue[0]);
if (f > t) {
 console.log("here");
}

http://jsfiddle.net/LdKRF/

虽然看看 http://www.datejs.com/

于 2013-08-30T07:34:12.047 回答
0

尝试

if (new Date(Todatevalue).getTime() > new Date(startdatevalue).getTime()){
      ---Things To do----
}
于 2013-08-30T07:34:45.057 回答