PHP日期时间不能正常工作



我正在从mysql检索datetime数据,从单行检索的数据是。

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,字符串在/Applications/MAMP/htdocs/kokaris/administrator/resources/library/models/users/users.php第21行

可能出了什么问题?

给定的解决方案对于程序方式来说非常好。

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

然而,我想知道哪一个将是最好的可行的解决方案,上述过程的方式或面向对象的方式。

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

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

不需要"date_format() ":

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

您正在尝试使用一个函数/对象,它是DateTime类的一部分,而没有创建对DateTime类的引用。

关于过程格式化,请查看date()

您要查找的是:

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

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

也是PHP Datetime 工作正常,因为date_format只是Date::format的别名,需要的正是你不想传递的东西(Datetime -object)。

相关内容

  • 没有找到相关文章

最新更新