0

我有两个日期,例如 from 和 to date。日期格式,例如28-Sep-201301-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 {

                }

但这也无法正常工作。

4

3 回答 3

1

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

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

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

     }
于 2013-09-23T07:07:05.897 回答
1

只需在将它们转换为字符串之前比较这两个Date对象:

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

if (dateTypeVar > dateTypeVarto) {
    ...
}

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

于 2013-09-23T07:08:18.310 回答
-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格式

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

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

您可以用上面的代码替换月份字段。或者您也可以使用其他方式。

于 2013-09-23T06:57:31.110 回答