0

当我尝试编辑表单中的某些字段时,日期被重置为 01-01-1970 01:00:00 但它第一次完美地从数据库中存储和检索其值。然后,当我编辑除日期以外的其他字段时,它会被重置。

在我的 jQuery 日期选择器下方:

<script>
$(document).ready(function(){
    $("#policy_start_date").datepicker({
        numberOfMonths: 1,
        onSelect: function(selected) {
            $("#policy_end_date").datepicker("option","minDate", selected)
        }
    });
    $("#policy_end_date").datepicker({ 
        numberOfMonths: 1,
        onSelect: function(selected) {
            $("#policy_start_date").datepicker("option","maxDate", selected)
        }
    });  
});
</script>

发布数据

$date_t=$_POST['policy_start_date'];
$datearr=explode('/',$date_t);

$month=$datearr[0];
$day=$datearr[1];
$year=$datearr[2];
$policy_start_date=$year."-".$month."-".$day;
//$policy_end_date   = $_POST['policy_end_date'];
$date_t=$_POST['policy_end_date'];
$datearr=explode('/',$date_t);

$month=$datearr[0];
$day=$datearr[1];
$year=$datearr[2];
$policy_end_date=$year."-".$month."-".$day;
4

1 回答 1

1

通常这是因为存储在 db 中的格式和 datepicker 发送/接受的格式。

标准日期选择器格式为 09/03/2013 (m/d/y)。

回显数据时,文本框上显示什么?1. 09/03/2013 (m/d/y) 或 2. 2013-09-13 00:00:00 (Ymd H:i:s)

如果显示选项一 (1),那么我们肯定需要查看显示您使用的表单的代码。

如果显示选项二(2),则需要在回显到文本框之前对其进行格式化。用这个,

$time = strtotime($date_stored_in_database);
$your_date = date('Y/m/d',$time);

strtotime 会将您存储在数据库中的日期转换为 UNIX TIMESTAMP,而 date 函数会将其转换为您需要的格式。

于 2013-09-05T06:36:20.497 回答