【问题标题】:Comparing time and date in javascript比较javascript中的时间和日期
【发布时间】:2011-11-18 18:51:23
【问题描述】:

假设有两个文本框,一个用于输入日期,另一个用于输入时间。下面是一个例子:

<p><strong>Date:</strong> <input type="text" id="datetxt"></p>

Example of how date is displayed: 25-05-1995

<p><strong>Time:</strong> <input type="text" id="timetxt"></p>

Example of how time is displayed: 14:25

有人可以在 javascript 中提出一种方法来比较文本框中的日期和时间值与当前日期和时间,因此如果当前日期和时间超过了在文本框中输入的日期和时间,那么它应该显示并且警报?

【问题讨论】:

    标签: javascript function date time comparison


    【解决方案1】:

    试试这个

    var dateParts = document.getElementById("datetxt").value.split("-");
    var timeParts = document.getElementById("timetxt").value.split(":");
    
    var valueDate = new Date(dateParts[2], (dateParts[1] - 1) ,dateParts[0], timeParts[0], timeParts[1]);
    
    if( (new Date).getTime() > valueDate .getTime() )
    {
       alert("passed");
    }
    

    现场示例:http://jsfiddle.net/TJEMr/

    【讨论】:

    • 两个答案都很棒。谢谢你。我已经选择了这个,因为它适用于所有日期和时间。再次感谢您
    【解决方案2】:

    您需要将您的日期字符串按摩成compatible 日期格式:

        //datetxt textbox value, split on dashes
    var date = "25-05-1995".split("-"), 
        //timetxt textbox value
        time = "14:25",
        //put it into format: YYYY-MM-DDThh:mm and creates a date object from it
        dateObj = new Date(date[2] + '-' + date[1] + '-' + date[0] + 'T' + time);
    
    //if today is greater than we have passed that DateTime
    if(new Date() > dateObj) {
        alert("After entered date");
    } else {
        alert("Not passed yet!");
    }
    

    工作示例:jsFiddle

    【讨论】:

      猜你喜欢
      • 2012-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-20
      • 2017-08-08
      • 1970-01-01
      • 2012-04-20
      • 1970-01-01
      相关资源
      最近更新 更多