jquery ui datepicker getDate返回Object而不是Date

时间:2011-10-10 23:22:33

标签: javascript jquery-ui datepicker jquery-ui-datepicker

我可能在这里遗漏了一些简单的东西,但我遇到了jquery ui datepicker的问题。看起来它只是返回一个通用的Object而不是Date对象,这不是我所期望的。这是代码:

<!DOCTYPE HTML>
<html>
<head>
  <meta charset="utf-8">

  <link type="text/css" href="jquery_ui/css/custom-theme/jquery-ui-1.8.14.custom.css" rel="stylesheet" />    
  <script type="text/javascript" src="jquery_ui/js/jquery-1.6.2.min.js"></script>
  <script type="text/javascript" src="jquery_ui/js/jquery-ui-1.8.16.custom.min.js"></script>
  <script type="text/javascript">

    Date.prototype.addHours= function(h){
        this.setHours(this.getHours()+h);
        return this;
    }

    $(function() {

        $( "#startdatetime" ).datepicker( 
            {
                onSelect: function(dateText, inst) {
                    sd = $( "startdatetime" ).datepicker( 'getDate' );
                    sd.addHours(10);
                }
            }); 

    });
  </script>
</head>

<body >
    <input id="startdatetime" type="text">
</body>
</html>

我得到的例外是“sd.addHours不是函数”,并且使用firebug看起来getDate给了我错误的对象(不是Date)。

我对javascript或jquery不是很熟悉,有谁知道为什么会这样?

2 个答案:

答案 0 :(得分:4)

你错过了内部jquery表达式中的井号。在任何情况下,您实际上都不需要再次找到对象,因为实例作为inst。

传递给函数

答案 1 :(得分:1)

addHour原生JavaScript Date类中有方法(参见http://www.w3schools.com/jsref/jsref_obj_date.asp)。

您可以做的是以下代码:

Date.prototype.addHours = function(amount) {
return new Date(this.getTime() + (amount * 60 * 60 * 1000));
}

$("#datepicker").datepicker("getDate").addHours(10);