4

许多客户要求我们让我们的日期选择器反映他们选择在我们的应用程序中使用的日期格式。不幸的是,我们经常使用日期选择器,因此,对每个选择器进行检查并确保日期仍然被正确解析是最后的手段。

现在我已经将他们选择的日期格式翻译成日期选择器的相应日期格式,并简单地将默认设置设置为该格式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 的实际值,以便我们向用户显示的值是他们的日期格式,但 datepicker 实际提交的值是我们的默认格式已经使用了。我正在考虑类似于全局表单的onsubmit东西,以及通过 AJAX 提交的表单类似的东西,但我不知道。也许 jQuery 在他们的日期选择器中内置了一些我不知道的很酷的东西。

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

4

2 回答 2

4

使用altFormat

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

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

于 2012-04-10T22:04:19.977 回答
-1

我找到了这个:

$.datepicker.setDefaults($.datepicker.regional['nl']);
$('.datepicker').datepicker('option', {
    dateFormat: 'yy-mm-dd'
});
于 2013-03-30T17:59:48.937 回答