2011-06-29 81 views
4

我知道這裏有大量關於更改datepicker dateFormat的問題,但我完全按照說明操作,它們似乎沒有任何作用。下面是建議對其他答案的確切代碼:爲什麼更改我的jQuery datepicker的dateFormat失敗?

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

然而,當我運行它,並與alert($('#datepicker').datepicker("getDate"));

我得到的日期早在不需要的格式測試日期選擇器值!這非常混亂。我有什麼問題嗎?看到http://jsfiddle.net/TmdM8/

編輯所描述的行爲:更令人困惑的是,如果我讀使用alert($("#datepicker").datepicker('option', 'dateFormat'));

的日期格式...返回的日期格式是正確的,即使調用getDate所需格式不返回日期。請參閱http://jsfiddle.net/fWmBe/

回答

5

日期格式設置用於在文本框中顯示選擇器應用於的格式。

看看我的版本更新您的小提琴:

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

,你可以看到,當你在文本框中pcick,並選擇一個日期,它的格式爲您指定。
據我所知,getDate函數返回一個javascript日期。

編輯: 如果你想從javascript日期格式化輸出,你需要使用自定義腳本或類似date.js的庫(我已經取得了巨大的成功)。

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

用,你可以這樣做:

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

讓你的日期格式,你喜歡

+0

這很有道理。 jQuery UI文檔只聲明'getDate'「返回datepicker的當前日期」,我認爲它的意思與datepicker放入文本框的值相同。感謝你的回答。 – hughes

0

我同意,它返回一個JavaScript日期。您可以使用此實用程序功能:

$ .datepicker.formatDate(格式,日期,設置) - 將日期格式化爲具有指定格式的字符串值。

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

+0

這很方便!可能是使用日期的更好選項。js如果你不需要date.js的其他東西。 – Patricia

0

這裏發生的事情是GETDATE是返回一個JavaScript Date對象。您正在看到日期對象的toString方法。

試試這個:

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


}); 
0

萬一有人找這個答案我一樣。這是一個工作代碼:

<script> 
$(function() { 
$("#datepicker").datepicker({inline: true, dateFormat:'yy-mm-dd'}); }); 
</script>