无法在MySql数据库中插入日期

时间:2012-11-30 16:06:13

标签: php mysql

我已经查看了几个与此问题有关的线程,但仍然无法弄清楚我的代码出了什么问题。

我从我的表单中带了一个日期字段,格式为“mm-dd-yyyy”,当我把它带到我的代码中以更新出生日期字段为“yyyy-dd-mm”我使用以下

$birth=$_POST['dateBorn'];
$dateB = date('Y-d-m',strtotime($birth));
$finaldateB = ($dateB === false) ? '0000-00-00' : date('Y-d-m',strtotime($dateB));

当我回显变量的值(使用出生日期为11-23-2012)时,我看到以下出生值= 11-23-2012,dateB = 1969-31-12,finaldateB = 1969 -31-12

我显然做了一些不正确的事情,但无法找到

的位置

TIA

为了让事情发挥作用,我至少发现了一种可能不优雅的解决方法,但却给了我现在需要的结果

 $dateB = $birth;
 $dateborn_a=explode("-",$birth);
 $yearborn = $dateborn_a[2];
 $dayborn = $dateborn_a[1];
 $monthborn = $dateborn_a[0];
 $dateOfBirth=$yearborn."-".$monthborn."-".$dayborn;

然后使用$ dateOfBirth中的值更新表。它适用于我迄今为止测试过的所有记录。

2 个答案:

答案 0 :(得分:5)

$dateB = date('Y-d-m',strtotime($birth));

这里

y is for year 
d is for day
m is for month

因此,结构将为yyyy-dd-mm

$dateB = date('Y-m-d',strtotime($birth));

答案 1 :(得分:2)

您使用的是Y-d-m而不是Y-m-d。 MySQL的日期格式应该是YEAR-MONTH-DAY。使用

$dateB = date('Y-m-d',strtotime($birth));

应该修复它。