Почему изменение dateFormat моего jQuery datepicker не удается?

Я знаю, что здесь есть множество вопросов об изменении datepicker dateFormat, но я точно следую инструкциям, и они, похоже, не имеют никакого эффекта. Вот точный код, который был предложен для других ответов:

$(document).ready(function() {
 $('#datepicker').datepicker({ dateFormat: 'dd-mm-yy' });
});

Тем не менее, когда я запускаю его и проверяю значение datepicker с помощью alert($('#datepicker').datepicker("getDate"));

Я возвращаю дату в нежелательном формате! Это очень запутанно. Я что-то не так? См. Описанное поведение http://jsfiddle.net/TmdM8/

edit: еще более запутанным является то, что если я прочитал формат даты, используя alert($("#datepicker").datepicker('option', 'dateFormat'));

... возвращаемая dateFormat верна, даже если вызов getDate не возвращает дату в нужном формате. См. http://jsfiddle.net/fWmBe/

4 ответа

параметр формата даты предназначен для формата, который выглядит, когда он отображается в текстовом поле, к которому применяется сборщик.

посмотрите мою обновленную версию своей скрипки:

http://jsfiddle.net/TmdM8/1/

как вы можете видеть, когда вы pcick в текстовом поле и выбираете дату, она находится в указанном вами формате. насколько я знаю, функция getDate возвращает дату javascript.

EDIT: если вы хотите отформатировать выходные данные с даты javascript, вам нужно будет использовать пользовательский script или библиотеку, такую ​​как date.js(у меня был большой успех с этим).

http://code.google.com/p/datejs/

чтобы вы могли сделать что-то вроде:

$('#datepicker').datepicker("getDate").toString('dd-MM-yyyy');

чтобы получить дату в формате, который вам нравится


Я согласен, что он возвращает дату javascript. Вы можете использовать эту служебную функцию:

$datepicker.formatDate(формат, дата, настройки) - форматирование даты в строковое значение с указанным форматом.

из http://docs.jquery.com/UI/Datepicker/formatDate


То, что происходит здесь, это getDate - это возвращение объекта даты javascript. Вы видите объект date toString.

Попробуйте следующее:

$(document).ready(function() {
 $('#datepicker').datepicker({
 onSelect: function(dateText, inst) { alert(dateText) }
 });
$('#datepicker').datepicker( "option" , 'dateFormat', 'yyyy-mm-dd' )
});


в случае, если кто-то ищет такой ответ, как я. вот рабочий код:

licensed under cc by-sa 3.0 with attribution.