无法将显示日期转换回日期格式以进行更新

时间:2017-04-12 16:45:45

标签: php mysql date-conversion

以DATE格式存储在数据库中的日期,其值为

2017-04-06

能够如下正确转换显示,以便用户可以更改它(如有必要):

$date_order = date("m/d/y", strtotime($data['date_order']));

这正确显示为

04/06/17

尝试使用以下内容更新数据库时转换回日期格式(Y-m-d):

$date_ship = date('Y-m-d',$_POST['date_ship']);

不幸的是,它转换为以下值:

1970-01-01 

错误日志=“遇到非格式错误的数值”。

2 个答案:

答案 0 :(得分:1)

您需要使用strtotime()函数将字符串转换为时间戳。

$date_ship = date('Y-m-d',strtotime($_POST['date_ship']));

Alex Howansky提供更多防弹解决方案,因此您也可以使用它。

$date_ship = DateTime::createFromFormat('m/d/y', $_POST['date_ship'])->format('Y-m-d');

答案 1 :(得分:1)

当你有像“04/06/17”这样的字符串时,没有明确的方法来判断04是白天还是月份。您可以使用createFromFormat()方法明确指定所需内容。

$date = DateTime::createFromFormat('m/d/y', '04/06/17');
echo $date->format('Y-m-d');