Как получить выбранный день / месяц и год с помощью jquery datepicker - PullRequest
7 голосов
/ 11 января 2011

Я использую плагин Jquery UI Datepicker, пытаюсь получить выбранный день, месяц и год из указателя даты в разных переменных (окончательное решение - назначить все 3 переменные скрытым полям).

Вот код:

        $(function() {
        $("#_StartDate").datepicker(
            {
                 onSelect: function(dateText, inst) {
                    var startDate = new Date(dateText);
                    var selDay = startDate.getDay();
                    alert(selDay);
                 }
            }
        );
    });

Я выбрал дату «1/10/2011», и она возвращает «1». Я выбрал дату «25.01.2011», и она возвращает «2». Что я тут не так делаю?

Спасибо за вашу помощь!

Ответы [ 3 ]

19 голосов
/ 11 января 2011

getDay возвращает день недели:)

Вы можете использовать:

getFullYear за год
getDate день месяца
getMonth месяц года

Следует за полным списком получателей (из DevDocs ):

Date.prototype.getDate () Возвращает день месяца (1-31) для указанной даты по местному времени.
Date.prototype.getDay () Возвращает день недели (0-6) для указанной даты по местному времени.
Date.prototype.getFullYear () Возвращает год (4 цифры для 4-значных лет) указанной даты по местному времени.
Date.prototype.getHours () Возвращает час (0-23) указанной даты в соответствии с местным временем.
Date.prototype.getMilliseconds () Возвращает миллисекунды (0-999) в указанную дату по местному времени.
Date.prototype.getMinutes () Возвращает минуты (0-59) указанной даты в соответствии с местным временем.
Date.prototype.getMonth () Возвращает месяц (0-11) указанной даты в соответствии с местным временем.
Date.prototype.getSeconds () Возвращает секунды (0-59) указанной даты в соответствии с местным временем.
Date.prototype.getTime () Возвращает числовое значение указанной даты в виде количества миллисекунд с 1 января 1970 года, 00:00:00 UTC (отрицательно для предыдущих периодов).
Date.prototype.getTimezoneOffset () Возвращает смещение часового пояса в минутах для текущей локали.
Date.prototype.getUTCDate () Возвращает день (дату) месяца (1-31) в указанной дате в соответствии с универсальным временем.
Date.prototype.getUTCDay () Возвращает день недели (0-6) указанной даты в соответствии с универсальным временем.
Date.prototype.getUTCFullYear () Возвращает год (4 цифры для 4-значных лет) указанной даты в соответствии с универсальным временем.
Date.prototype.getUTCHours () Возвращает часы (0-23) указанной даты в соответствии с универсальным временем.
Date.prototype.getUTCMilliseconds () Возвращает миллисекунды (0-999) в указанной дате в соответствии с универсальным временем.
Date.prototype.getUTCMinutes () Возвращает минуты (0-59) указанной даты в соответствии с универсальным временем.
Date.prototype.getUTCMonth () Возвращает месяц (0-11) указанной даты в соответствии с универсальным временем.
Date.prototype.getUTCSeconds () Возвращает секунды (0-59) указанной даты в соответствии с универсальным временем.
Date.prototype.getYear () Возвращает год (обычно 2-3 цифры) в указанную дату по местному времени. Вместо этого используйте getFullYear () **.

3 голосов
/ 11 января 2011

Возвращается только .getDay() (день недели 0-6), вам нужно сделать что-то вроде:

var selDay = ...
var selMon = startDate.getMonth();
var selYear = startDate.getYear();

Ссылка: http://www.w3schools.com/jsref/jsref_obj_date.asp

Примечание

Обратите особое внимание на то, что возвращается, getDay () -> 0-6 getMonth () -> 0-11 и т. д. - все в предоставленной мной ссылке.

0 голосов
/ 11 января 2011

Чтобы получить значение из поля ввода:

var start_date=$('input#start_date').val();
...