我已经查看了几个与此问题有关的线程,但仍然无法弄清楚我的代码出了什么问题。
我从我的表单中带了一个日期字段,格式为“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中的值更新表。它适用于我迄今为止测试过的所有记录。
答案 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));
应该修复它。