2013-08-30 70 views
0

jQuery中我試圖驗證日期,但我的日期字段被視爲每月若跌破12落在..日期驗證STARTDATE從日期

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,這在我的情況下是錯誤的。到目前爲止是更大的。 快速解決方案將幫助....

+1

將字符串轉換爲「Date」,然後再比較它們。或者將年份移到前面,因此它是「2013/07/03」和「2013/05/06」。 – Barmar

+0

我建議你使用jquery.validate.js ...具有更大的各種驗證類型的能力 –

+0

如果您使用jQueryUI的datepicker,請使用'$ .datepicker.parseDate(format,string)'將日期值轉換爲一個javascript日期對象,然後你可以使用標準的比較日期< and > –

回答

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/

+0

這段代碼我已經嘗試過,但仍然沒有運氣! – user2689215

+0

@ user2689215你可以檢查我的更新答案 – rps

0

嘗試

if (new Date(Todatevalue).getTime() > new Date(startdatevalue).getTime()){ 
     ---Things To do---- 
} 
+0

嗨,試過這個,但仍然是相同的問題,如果日期低於12,它將月份作爲月份。 – user2689215

+0

您只需要將日期格式設置爲dd/mm/yyyy,因爲默認日期格式爲mm/dd/yyyy –

+0

但javascript是客戶端代碼,您不能強制您的網站訪問者將PC日期格式設置爲dd/MM/yyyy,這是代碼漏洞,您最好在代碼中解決問題。 –

1

您可以使用jQuery的日期選擇器(jQuery UI的)並執行以下操作

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

然後的startDate和結束日期

+0

限制使用kendo控件作爲要求 – user2689215

0

解決方案1執行您的checn: 正則表達式):

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); 
0
,我建議使用時刻

。 js爲了做日期的操作。標準的JavaScript日期工具有點差。 查看此處的圖書館: http://momentjs.com/