日期字段在 PHP 和 MySQL 中被重置
Posted
技术标签:
【中文标题】日期字段在 PHP 和 MySQL 中被重置【英文标题】:Date field is being reset in PHP and 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;
【问题讨论】:
【参考方案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 函数会将其转换为您需要的格式。
【讨论】:
以上是关于日期字段在 PHP 和 MySQL 中被重置的主要内容,如果未能解决你的问题,请参考以下文章
仅从日期时间字段(mysql)中提取日期并将其分配给 php 变量