jQuery UI日期选择器的日期格式化

4

我遇到了一些问题,无法正确获取日期格式。

当我的日期字段失去焦点后,我希望它显示为:

dd-mm-yyyy,但必须像这样保存在数据库中:

yyyy-mm-dd。 .

目前我所拥有的是:

$("#birthdate").datepicker({
            changeMonth: true,
            changeYear: true,
            altFormat: 'yyyy-mm-dd' 
             });

现在日期字段显示为11/25/2009(11月25日09年),并发布为11/25/2009。你有什么想法?
2个回答

4

试试这个:

<script type="text/javascript" charset="utf-8">
$(document).ready(function()
{   
    $("#datepicker").datepicker({
        altField: '#realdate', 
        altFormat:'yy-mm-dd'
    }); 
});

<input type="text" name="datepicker" value="" id="datepicker">
<input type="hidden" name="realdate" value="" id="realdate">

然后使用realdate来获取您发布时的日期。

如果我有多个日期选择器,并且只使用一个jQuery选择器$("#datepicker1,#datepicker2")来设置日期选择器,那该怎么办? - anmarti

2

MrHus提供了一个很好的答案,但您应该在后端处理它,因为这些信息可以通过代理或许多其他可能的恶意方式伪造。例如,如果您正在运行PHP,则应该是以下内容:

<?php
// BTW... you'll want to check for XSS attacks and other vulnerabilities first...
$date = '08/05/1986';//$_REQUEST['datepicker'];
// This is very simple... you should also check if the date is real...
if(preg_match('/^\d{2}\/\d{2}\/\d{4}$/',$date)) {
    $date_formatted = date('Y-m-d',strtotime($date));
}
// put $date_formatted into database...
?>

我们两个回答的结合应该可以让你(大部分)安全地到达目的地。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接