从date()开始的PHP日期时间格式

时间:2014-07-20 10:39:26

标签: php mysql datetime

我的日期格式存在问题,将保存到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'。

那么我做错了什么?

提前致谢。

3 个答案:

答案 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,并以您需要的格式保存数据。

希望这会有所帮助。