jQuery UI Datepicker - 前端的动态日期格式,但后端的静态日期格式?

时间:2012-04-05 15:18:33

标签: jquery jquery-ui datepicker jquery-ui-datepicker

我们收到许多客户的请求,要求我们的日期选择器反映他们选择在我们的应用中使用的日期格式。不幸的是,我们经常使用datepickers,所以去每一个并确保日期仍然正确解析是最后的手段。

现在我已将他们选择的日期格式转换为日期选择器的相应日期格式,只需将默认dateFormat设置为该格式。

<?php
// set default datepicker date format depending on their date format
$phpToJsDateFormats = array(
    'j M Y' => 'd M yy',
    'Y-m-d' => 'yy-mm-dd',
    'm-d-Y' => 'mm-dd-yy',
    'd-m-Y' => 'dd-mm-yy',
    'n/j/Y' => 'm/d/yy',
    'j/n/Y' => 'd/m/yy',
    'F jS, Y' => 'MM d, yy',
);
$jqueryDateFmt = $phpToJsDateFormats[ $settings['Config']['format_date'] ];
?>
<script type="text/javascript">
$.datepicker.setDefaults({
    dateFormat: "<?php echo $jqueryDateFmt ?>"
});
</script>

为了使这个变得简单,我想知道是否有一种方法可以掩盖日期选择器的实际值,因此我们向用户显示的值是它们的日期格式,但是datepicker实际提交的值是默认值我们已经使用过的格式。我正在考虑全局形式onsubmit的某些内容,以及类似于通过AJAX提交的表单,但我不知道。也许jQuery在他们的日期选择器中有一些很酷的内容,我不知道。

任何想法都将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:4)

使用altFormat

$( ".selector" ).datepicker({ altFormat: "yy-mm-dd" });
  

这允许向用户显示一种日期格式以供选择   目的,而实际上是在幕后发送不同的格式。

答案 1 :(得分:-1)

我发现了这个:

$.datepicker.setDefaults($.datepicker.regional['nl']);
$('.datepicker').datepicker('option', {
    dateFormat: 'yy-mm-dd'
});