我的日期格式存在问题,将保存到MySQL表中。
在表格中有一个datime格式字段'a',默认设置为'0000-00-00 00:00:00'。
要初始化当前日期和时间,我将时区日期功能设置为:
$timezone = 'Europe/Berlin';
date_default_timezone_set($timezone);
$time = date("Y-m-d H:i:s");
将$time
保存到相应的字段“a”中。一切正常。
现在我想把日期时间格式改成“d-m-Y H:i:s”。
我用过:
$output = DateTime::createFromFormat('Y-m-d h:i:s', $time)->format('d-m-Y H:i:s');
$time = $output;
问题是这似乎不起作用。在数据库中将插入'0000-00-00 00:00:00'。
那么我做错了什么?
提前致谢。
答案 0 :(得分:1)
无效的DATETIME格式和无效值将转换为零值(例如0000-00-00 00:00:00
)。在您的情况下,给定的DATETIME格式无效。
有效格式为:
YYYY-MM-DD HH:MM:SS
(可以随机选择分隔符)YY-MM-DD HH:MM:SS
(可以随机选择分隔符)YYYYMMDDHHMMSS
(字符串和数字格式可接受)YYMMDDHHMMSS
(字符串和数字格式可接受)有关两位数年份转换的详细信息,请访问:http://dev.mysql.com/doc/refman/5.0/en/datetime.html
答案 1 :(得分:0)
echo date('d/m/y H:i:s',$time);
这将以所需格式输出日期而不更改数据库中的格式。希望它有所帮助。
答案 2 :(得分:-1)
在数据库中,列必须是日期时间字段,默认情况下,它以00:00:00格式存储数据。一种解决方法是将数据库列更改为varchar,并以您需要的格式保存数据。
希望这会有所帮助。