2010-12-31 6 views
2

カレンダーからテキストボックスに選択された日付を現在の日付で検証するためのjavascriptを使用して関数を作成しました。そして私は正しい結果を得ていない。テキストボックスに表示される日付形式は、 "01-Oct-2010"です。以下のように、私は作成していた機能は次のとおりです。日付のバリデーション

function CheckDate() { 
    var today = new Date(); 
    var startDate = document.getElementById("<%=txtStartDate.ClientID %>").value; 
    var endDate = document.getElementById("<%=txtEndDate.ClientID %>").value; 

    if (Date.parse(endDate) >= today) { 
     alert("End Date should not be greater than Today"); 
    } 

    return true; 
} 

答えて

2
var myDt=new Date(); 
myDOB = document.getElementById('dateField').value.split('-'); 
myDate = myDOB[0]; 
myMonth= getMonthInDigit(myDOB[1]); 
myYear = myDOB[2]; 
var now = new Date(); 
myDt.setFullYear(myYear,myMonth,myDate); //here year, month, date value should be parsed from the value u get 
var diff = (now.getTime() - myDt.getTime()) 
if(diff < 0){ 
    alert("End Date should not be greater than Today"); 
} 

あなたは上記のJavaScriptコードを使用することができます。

注:必要に応じて桁で値を返すgetMonthInDigit関数を作成します。

+0

こんにちは....これが機能している.....おかげで....私はまだ知らないなぜ機能:タイムスタンプは日付が作成されたときよりも数ミリ秒大きくなる可能性があるため、日付をORMALISE私が書いたものはうまくいきません。 –

+0

var myDt = new Date(Date.parse(endDate.replace(/ -/g、 "")))などの操作をしないと、上記のコードはどのように機能しますか? ??? – mplungjan

+0

@ mplungjan-コードを今すぐチェックする月、年、および日の値を取得する方法を追加しました – niksvp

1
  1. today.getTimeに対するダッシュ
  2. 試験(削除)Date.parseは、タイムスタンプを返すので、しない日付オブジェクト

単に

if (Date.parse(endDate.replace(/-/g," ")) >= today.getTime()) { 
ため

if (Date.parse(endDate) >= today) { 

を変更します

あなたはNにすることができます

var endTime = new Date(Date.parse(endDate.replace(/-/g," ")).setHours(0,0,0,0).getTime(); 
var today = new Date().setHours(0,0,0,0).getTime(); 
if (endTime > today) { 
関連する問題