0

javaスクリプトを使用して、テキストボックスに入力された日付が今日の日付より前であることを確認するにはどうすればよいですか?

私はコードを使用しています

var currentDate_Month = new Date().valueOf().getMonth();
        var currentDate_Date = new Date().getDate();
        var currentDate_Year = new Date().getFullYear();
        var EnterDate_Month = new Date(document.getElementById('ctl00_ContentPlaceHolder1_txtDateReceived').value).getMonth();
        var EnterDate_Date = new Date(document.getElementById('ctl00_ContentPlaceHolder1_txtDateReceived').value).getDate();
        var EnterDate_Year = new Date(document.getElementById('ctl00_ContentPlaceHolder1_txtDateReceived').value).getFullYear();

        if(EnterDate_Year<currentDate_Year) {
          if(EnterDate_Month<currentDate_Month) {
            if(EnterDate_Date<currentDate_Date) {
            }
           }
          }
         else {   
            str += '</br>* Date should be Less than or equals to current Date.';
            return false;
         }

しかし、驚いたことに、テキスト ボックス コントロールに表示される現在の日付は、2014 年 6 月 7 日であることがわかりました。

new Date(document.getElementById('ctl00_ContentPlaceHolder1_txtDateReceived').value).toDateString();

この形式で日付を返すのはなぜですか? (テキスト ボックスの日付は dd/mm/yyyy の形式です)

前もって感謝します。

4

2 に答える 2

2

コードを簡素化できます:

var today = new Date();

var enterDate = new Date(Date.Parse(document.getElementById('ctl00_ContentPlaceHolder1_txtDateReceived')));

if (enterDate.valueOf() < today.valueOf())
{
    // To what you have to do...
}
于 2012-07-30T10:14:08.280 に答える
2

Date() は次のように初期化できます。

Date("mm/dd/yyyy")

この方式を採用しているため、dd/mm/yyyy の形式は使用できません。あなたの場合の最善の方法は、次のことを行うことです

dateFields = (document.getElementById('ctl00_ContentPlaceHolder1_txtDateReceived').value.split('/')

date = Date(dateFields[2],dateFields[1]-1, dateFields[0])

これは次の形式になります。

Date(year, month, date)

次に、テキストボックスの日付を現在の日付と比較できます

date < Date.now()
于 2012-07-30T10:15:09.657 に答える