1

我有两个从下拉框中选择的时间值。时间格式为hh:mm am/pm。我需要比较这两个日期。我已经完成了这段代码,但它对我不起作用。

<select id="eventstarttime">
  <option>10:00am</option>
  ........
  <option>3:00pm</option>
 </select>

 <select id="eventstoptime" onblur="return checktime()">
  <option>10:00am</option>
  ........
  <option>3:00pm</option>
 </select>

javascript方法是

 function checktime()
{
    var start = document.getElementById("eventstarttime").value;
    var end = document.getElementById("eventstoptime").value;


    if(Date.parse('01/01/2011 '+end) < Date.parse('01/01/2011 '+start))
    {
        alert("End time should exceed the start time");
    }
    else if(Date.parse('01/01/2011 '+end) -Date.parse('01/01/2011 '+start)==0)
    {
        alert("Start time and end time cannot be same");
    }
    return false;
}
4

5 回答 5

7

如果您向元素添加 24h 时间value属性,例如option

<select id="eventstarttime">
  <option value="1000">10:00am</option>
  <option value="1215">12:15pm</option>
  <option value="1500">3:00pm</option>
</select>

<select id="eventstoptime" onblur="return checktime()">
  <option value="1000">10:00am</option>
  <option value="1215">12:15pm</option>
  <option value="1500">3:00pm</option>
</select>

您可以使用以下方法轻松比较它们

function checktime()
{
    var start = document.getElementById("eventstarttime").value;
    var end = document.getElementById("eventstoptime").value;

    if (end < start)
    {
        alert("End time should exceed the start time");
    }
    else if (end == start)
    {
        alert("Start time and end time cannot be same");
    }
    return false;
}

不需要 JavaScriptDate方法。

于 2013-03-07T12:23:05.833 回答
3

您必须将ampm与时间值分开 a space。同样在你的代码变量中dtEnddtStart没有定义。在 else 部分中,如下所示:

else if(end == start)
{
   alert("Start time and end time cannot be same");
}
于 2013-03-07T12:11:42.387 回答
1

试试strtotimehttp://php.net/manual/en/function.strtotime.php

$firstTime="10:00 am";
$secondTime="3:00 am";
$result =strtotime ($firstTime) > strtotime($secondime);
于 2013-03-07T12:06:26.813 回答
1

在您的 HTML 代码中,在选择选项值中的“hh:mm”和“am/pm”之间添加空格

 function checktime()
{
    var start = document.getElementById("eventstarttime").value;
    var end = document.getElementById("eventstoptime").value;


    if(Date.parse('01/01/2011 '+end) < Date.parse('01/01/2011 '+start))
    {
        alert("End time should exceed the start time");
    }
    else if(Date.parse('01/01/2011 '+end) -Date.parse('01/01/2011 '+start)==0)
    {
        alert("Start time and end time cannot be same");
    }
    return false;
}
<select id="eventstarttime">
  <option value='10:00 am'>10:00am</option>
  <option value='3:00 pm'>3:00pm</option>
 </select>

 <select id="eventstoptime" onblur="return checktime()">
  <option value='10:00 am'>10:00am</option>
  <option value='3:00 pm'>3:00pm</option>
 </select>

于 2017-10-24T10:34:15.407 回答
0

你可以通过 PHP 来做到这一点,如下所示:

var d1 = "15:30";
var d2 = "15:36";
if (new Date(d1) < new Date(d2)) {alert('newer')}

查看参考 URls :

jQuery/JS - 如何比较两个日期/时间戳?

如何获取当前时间,然后使用 jquery 进行比较

使用 PHP,您可以这样做:

$time1 = strtotime("15:30");
$time2 = strtotime("15:40");

if($time1<$time2)
{
   echo "time 1 is smaller";
}
else if($time1>$time2)
{
   echo "time 2 is smaller";
}
else
{
   echo "both are same";
}

希望对你有帮助

于 2013-03-07T12:01:37.400 回答