2012-02-23 101 views
1

我正在使用jQuery datepicker從用戶請求日期輸入。我設置了本地默認值,並讓它生成我想要的正確日期格式(日/月/年)。出於某種原因,此日期以表單(mm/dd/yyyy)形式發佈 - 如何確保發佈正確的格式?jQuery datepicker發佈錯誤日期值

設置的默認值:

jQuery(function($) { 
    $.datepicker.regional['en-GB'] = { 
     monthNames: [ 
      'January', 
      'February', 
      'March', 
      'April', 
      'May', 
      'June', 
      'July', 
      'August', 
      'September', 
      'October', 
      'November', 
      'December' 
     ], 
     monthNamesShort: [ 
      'Jan', 
      'Feb', 
      'Mar', 
      'Apr', 
      'May', 
      'Jun', 
      'Jul', 
      'Aug', 
      'Sep', 
      'Oct', 
      'Nov', 
      'Dec' 
     ], 
     dayNames: [ 
      'Sunday', 
      'Monday', 
      'Tuesday', 
      'Wednesday', 
      'Thursday', 
      'Friday', 
      'Saturday' 
     ], 
     dayNamesShort: [ 
      'Sun', 
      'Mon', 
      'Tue', 
      'Wed', 
      'Thu', 
      'Fri', 
      'Sat' 
     ], 
     dayNamesMin: [ 
      'Su', 
      'Mo', 
      'Tu', 
      'We', 
      'Th', 
      'Fr', 
      'Sa' 
     ], 
     dateFormat: 'dd/mm/yy', 
     firstDay: 1, 
     renderer: $.datepicker.defaultRenderer, 
     prevText: 'Prev', 
     prevStatus: 'Show the previous month', 
     prevJumpText: '<<', 
     prevJumpStatus: 'Show the previous year', 
     nextText: 'Next', 
     nextStatus: 'Show the next month', 
     nextJumpText: '>>', 
     nextJumpStatus: 'Show the next year', 
     currentText: 'Current', 
     currentStatus: 'Show the current month', 
     todayText: 'Today', 
     todayStatus: 'Show today\'s month', 
     clearText: 'Clear', 
     clearStatus: 'Erase the current date', 
     closeText: 'Done', 
     closeStatus: 'Close without change', 
     yearStatus: 'Show a different year', 
     monthStatus: 'Show a different month', 
     weekText: 'Wk', 
     weekStatus: 'Week of the year', 
     dayStatus: 'Select DD, M d', 
     defaultStatus: 'Select a date', 
     isRTL: false 
    }; 
    $.datepicker.setDefaults($.datepicker.regional['en-GB']); 
}); 

正開始的日期選擇器

$(".datepicker").each(function() { 
     $(this).datepicker({ 
      onSelect: onSelectHandler 
     }); 
    }); 
+4

向我們展示一些代碼。很難猜測你做錯了什麼。 – Iznogood 2012-02-23 16:25:22

回答

2

您應該只需要這樣做:

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

結帳this simple jsFiddle demo

編輯:看起來你的代碼適合我。做了一個new fiddle with your code。另外,您不需要執行.each()。只需$(「。datepicker」)。datepicker({onSelect:onSelectHandler});應該管用。

+0

它在頁面上正確地格式化。這是後錯誤的價值。 – 2012-02-23 16:40:25

+0

@ me232啊!現在這是不同的。這篇文章的格式是否有誤(你能看到這個與fiddler類似的東西嗎?)還是你的服務器在收到帖子後重新格式化它? – 2012-02-23 16:58:52

+0

其實你說的很好。這不是確切的答案,但是。我正在使用MVC3,並且某個控制器操作正在執行後重定向,這會導致轉換並顯示爲具有倒退日期時間的日誌中的頁面請求。我只是希望有人知道日期選擇器在提交日期時會做什麼,所以我可以去檢查一下。感謝您的建議,它肯定會導致關於日期格式化的另一個問題,雖然 – 2012-02-23 22:52:28

2

如果您使用的是UI Jquery的,設置正確的格式時初始化,就像這樣:

$(".selector").datepicker({dateFormat: 'dd/mm/yy'}); 
+2

'dd/mm/yyyy'將導致日期'09/02/20122012'。 jqUI在這方面不使用標準格式。 – 2012-02-23 16:38:08

+0

對不起,你說得對。謝謝。 – 2012-02-23 16:40:43

+0

NP。如果我沒有讓jsFiddle檢查,我會給出同樣的答案。 – 2012-02-23 16:56:01