jQuery UI DatePicker getDate возвращает объект вместо даты - PullRequest
2 голосов
/ 11 октября 2011

Я, наверное, упускаю что-то простое здесь, но у меня проблемы с датчиком выбора jquery ui.Кажется, что он просто возвращает универсальный объект вместо объекта 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 ]

4 голосов
/ 11 октября 2011

Вам не хватает знака фунта во внутреннем выражении jquery. На самом деле вам не нужно снова находить объект в любом случае, так как экземпляр передается в функцию как inst.

1 голос
/ 11 октября 2011

В addHour имеется собственный класс дат JavaScript (см. 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);
...