在javascript上比较2日期的错误

时间:2012-06-25 10:17:12

标签: php ajax

  

可能重复:
  Compare 2 dates with JavaScript

我在javascript上有这段代码

function calculate() {
  var departing = document.getElementById('tickets_expiry_date_departing').value;
  var returning = document.getElementById('tickets_expiry_date_returning').value;
  if (returning > departing){ alert("Error"); } else { return true; }
}

然后我在

上调用此函数
<input
  class="txtFieldDate"
  name="tickets_expiry_date_returning"
  id="tickets_expiry_date_returning"
  value="<?php echo $_POST["tickets_expiry_date_returning"]; ?>"
  readonly="readonly"
  onChange="calculate();"/>

当标识为tickets_expiry_date_returning的元素具有我认为小于标识为tickets_expiry_date_departing的元素的值的值时,我应该收到显示错误的警报,但我不会。为什么呢?

1 个答案:

答案 0 :(得分:0)

我认为你正在做这样的事情 如果您在两个输入上都有25-06-2012格式的日期选择器,那么以下代码将起作用

 function calculate(){
 if($('#tickets_expiry_date_returning').val().length && 
      $('#tickets_expiry_date_departing').val().length){
            var st_split = $('#tickets_expiry_date_returning').val().split('-');
            var et_split = $('#tickets_expiry_date_departing').val().split('-');
            var start_date = new Date(st_split[0], (st_split[1] - 1), st_split[2]);
            var end_date   = new Date(et_split[0], (et_split[1] - 1), et_split[2]);
            if(start_date > end_date){
                alert("Error");
                return false;
            }
        }
 }