如何比较两个日期?

时间:2013-09-23 06:47:25

标签: javascript jquery

我有两个约会,比如来自和迄今为止。 日期格式如 28-Sep-2013 01-Sep-2013 。 我想比较日期并显示错误消息。 我已经使用了这段代码,

     var from = $('#<%= txtFDateEdu.ClientID %>').val();
     var to = $('#<%= txtTDateEdu.ClientID %>').val();

     var dateTypeVar = $('#<%= txtFDateEdu.ClientID %>').datepicker('getDate');
     var dateTypeVarto = $('#<%= txtFDateEdu.ClientID %>').datepicker('getDate');
     $.datepicker.formatDate('dd-mm-yy', dateTypeVar);

     var datefrom = $.datepicker.formatDate('dd/mm/yyyy', dateTypeVar);
     var dateto = $.datepicker.formatDate('dd/mm/yyyy', dateTypeVarto);
         alert(datefrom);    

         if (datefrom > dateto) {
             alert("Success");
          }
         else {

         }

此代码无法正常运行。某些问题以日期格式发生。请任何人帮我解决日期格式问题并正确比较日期。 我也使用这段代码。

var from = $('#<%= txtFDateEdu.ClientID %>').val();
                var to = $('#<%= txtTDateEdu.ClientID %>').val(;)

                alert(from);
                alert(to);
                var datefrom = new Date(from);
                var dateto = new Date(to);
                alert(datefrom);
                 alert(dateto);
                if (datefrom > dateto) {
                    alwer("Success");
                }
                else {

                }

但这也行不通。

3 个答案:

答案 0 :(得分:1)

您正在将给定日期转换为字符串,只需跳过此步骤:

 var datefrom = $('#<%= txtFDateEdu.ClientID %>').datepicker('getDate');
 var dateto = $('#<%= txtFDateEdu.ClientID %>').datepicker('getDate');

     if (datefrom > dateto) {
         alert("Success");
      }
     else {

     }

答案 1 :(得分:1)

只需比较之前的两个Date对象,然后将它们转换为字符串:

var dateTypeVar = $('#<%= txtFDateEdu.ClientID %>').datepicker('getDate');
var dateTypeVarto = $('#<%= txtFDateEdu.ClientID %>').datepicker('getDate');

if (dateTypeVar > dateTypeVarto) {
    ...
}

比较运算符将自动通过.valueOf()获取两个日期对象的值,即自1970/01/01 00:00:00以来经过的毫秒数。

答案 2 :(得分:-1)

我也使用日期选择器,通常我使用以下脚本。

   function compare_dates(valid_to, valid_from){
  var splited_to = valid_to.split("-")
  var to_date_monthfield=splited_to[1];
  var to_date_dayfield=splited_to[0];
  var to_date_yearfield=splited_to[2];
  var to_date = new Date(to_date_yearfield, to_date_monthfield-1, to_date_dayfield);

  var splited_from = valid_from.split("-");
  var from_date_monthfield=splited_from[1];
  var from_date_dayfield=splited_from[0];
  var from_date_yearfield=splited_from[2];
  var from_date = new Date(from_date_yearfield, from_date_monthfield-1, from_date_dayfield);

  var cur_date = new Date();
  if(!(from_date > cur_date.setDate(cur_date.getDate() - 1))){
    return false;
  }
  if(!(to_date > from_date)){
    return false;
  }
  return true;

}

预计您的约会日期为 dd // mm / yyyy 格式

here我发现有些东西用完了。您可以将它与我的代码一起使用。

new Date(Date.parse(month_string +" 1, 2012")).getMonth()+1

您可以使用上面的代码替换 monthfield 。或者您也可以使用other方式。