以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
错误日志=“遇到非格式错误的数值”。
答案 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');