2

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

我从我的表单中带来了一个格式为“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 中的值更新表。它适用于我迄今为止测试过的所有记录。

4

2 回答 2

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));
于 2012-11-30T16:08:45.540 回答
2

您使用的是 Ydm 而不是 Ymd。MySQL 的日期格式应该是 YEAR-MONTH-DAY。使用

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

应该修复它。

于 2012-11-30T16:08:31.813 回答