为什么当我使用" =="时,datepicker突出显示不起作用?

时间:2014-06-20 16:42:33

标签: javascript jquery css jquery-ui reference

   .Highlighted a{
   background-color : Green !important;
   background-image :none !important;
   color: White !important;
   font-weight:bold !important;
   font-size: 9pt;

}


  $(document).ready(function () {

                var date1 = new Date(2014, 5, 6);
                var date2 = new Date(2014, 5, 17);

                $('#datepicker').datepicker({

                   dateFormat: "mm/dd/yy",

                   beforeShowDay: function (date) {


                       if (date == date1 ) {

                            return [true, 'Highlighted', 'Available Date'];
                        }
                        return [false, '', ''];
                    }
                });
        });

由于date==date1,这个不起作用。如果我将其更改为date<=date1,则可以正常使用。我认为javascript是一种弱类型语言,它比较内容,而不是引用。我不想做(date.getDay==date1.getDay &&....)之类的事情。是否有更简单的方法来比较这些值?

3 个答案:

答案 0 :(得分:5)

Demo Fiddle

使用+一元运算符(reference)将值转换为数值以进行比较。

  

一元+运算符将其操作数转换为数字类型。


if (+date === +date1 ) {

      return [true, 'Highlighted', 'Available Date'];
}

OR

if (!(date - date1)) {

      return [true, 'Highlighted', 'Available Date'];
}

答案 1 :(得分:3)

根据建议in this post,您希望使用以下内容来比较日期:

date.getTime() == date1.getTime()

答案 2 :(得分:2)

另一种方式:

if (date.valueOf() == date1.valueOf())