2012-02-23 174 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