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 回答