【问题标题】:Date field is being reset in PHP and MySQL日期字段在 PHP 和 MySQL 中被重置
【发布时间】:2013-09-08 20:36:59
【问题描述】:

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

【问题讨论】:

    标签: php jquery database validation datepicker


    【解决方案1】:

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

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

    当您回显数据时,文本框上会显示什么? 1. 2013 年 9 月 3 日(月/日/年) 要么 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,然后 date 函数会将其转换为您需要的格式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-19
      • 2011-11-08
      • 2012-11-26
      • 1970-01-01
      • 2020-12-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多