日期字段正在PHP和MySQL中重置

时间:2013-09-05 06:19:26

标签: php jquery database validation datepicker

当我尝试编辑表单中的某些字段时,日期将重置为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>

POST DATA

$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;

1 个答案:

答案 0 :(得分:1)

通常会发生这种情况,因为db中存储的格式和datepicker发送/接受的格式。

标准的datepicker格式是09/03/2013(月/日)。

回显数据时文本框上显示的内容是什么? 1. 09/03/2013(月/日) 要么 2. 2013-09-13 00:00:00(Y-m-d H:i:s)

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

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

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

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