PHP Datetime无法正常工作

时间:2011-04-13 05:37:32

标签: php datetime

我正在从mysql中检索日期时间数据,从单行检索的数据是。

2011-04-11 19:31:30 

我想在d-m-Y H:i:s中重新格式化日期时间,因为我正在使用date_format()以下代码正常运行。

$date = new DateTime($users['registerDate']);
echo $date->format('d-m-Y H:i:s');

但是,我不想仅仅为了重新格式化而采用面向对象的方式,因为我将使用foreach循环中的代码,这意味着我必须一次又一次地初始化DateTime类。

我尝试使用以下代码执行此过程。

$date = $users['registerDate'];
echo date_format($date, 'Y-m-d H:i:s');

上述代码对我不起作用,并返回以下错误。

  

警告:date_format()要求参数1为DateTime,字符串在第21行的/Applications/MAMP/htdocs/kokaris/administrator/resources/library/models/users/users.php中给出

可能出现什么问题?

给定的解决方案在程序方面完全正常。

echo date('m-d-Y',strtotime($users['registerDate']));

但是我想知道哪种是上述程序方式或OOP方式的最佳可行解决方案。

 $date = new DateTime($users['registerDate']);
 echo $date->format('d-m-Y H:i:s');

考虑到我将在foreach循环中使用代码,它可能会循环超过一百次。

3 个答案:

答案 0 :(得分:7)

您不需要“date_format()”:

echo date('d-m-Y H:i:s', strtotime('2011-04-11 19:31:30'));

//results: 11-04-2011 19:31:30

答案 1 :(得分:4)

您正在尝试使用属于DateTime类的函数/对象,而不创建对DateTime类的引用。

有关程序格式,请查看date()

答案 2 :(得分:2)

您正在寻找的是:

date('d-m-Y H:i:s', strtotime('2011-04-11 19:31:30'));

看一下php-manual。但是,使用您自己提出的方法非常好,因为DateTime对象映射到用C编写的一些函数。

PHP Datetime 也正常工作,因为date_format只是Date :: format的别名, 完全要求你传递的内容(一个DateTime-object)。

老实说,我们正在谈论PHP ......