Php 将数组中的日期格式更改为yyyy/mm/dd,并转换为json格式

Php 将数组中的日期格式更改为yyyy/mm/dd,并转换为json格式,php,json,kohana,Php,Json,Kohana,这是我的控制器代码: $news = Model::factory('News')->get_all_news($user_id); $news->as_array(); foreach($news as $news): $sa[] = $news->as_array(); endforeach; echo '{"news":'.json_encode($sa).'}'; 数组: Array ( [0] => Array

这是我的控制器代码:

$news = Model::factory('News')->get_all_news($user_id);   
$news->as_array();

foreach($news as $news):
    $sa[] = $news->as_array();
endforeach;

echo '{"news":'.json_encode($sa).'}';
数组:

Array
    (
        [0] => Array
            (
                [user_id] => 32
                [created_date] => 2014-04-05 19:06:01
            )

        [1] => Array
            (
             ''''''''''
             ) 
     )
我以JSON格式输出数组。我在数组中有很多数据,但我只想格式化日期。现在我以
yyyy-mm-dd hh:mm:ss
格式获取日期,但我想将其格式改为
yyy/mm/dd hh:mm:s

我该怎么做?(最好在将此数组编码为JSON之前)

您可以使用格式化日期

$date = new DateTime("2014-04-07 11:22:12");
echo $date->format("Y/m/d H:i:s");
然后推送到json数组,反之亦然

旁注: 如果您可以控制查询,那么您可以直接在查询上进行控制。 在Mysql中,可以使用

因此,您的查询返回的数据将是所需的格式,无需执行任何进一步的PHP操作。 这里有一个例子

select date_format(transdate,"%Y/%m/%d %H:%i:%s") as log_date  from log where idusers = 1 ;
+---------------------+
| log_date            |
+---------------------+
| 2013/05/13 00:00:00 |
| 2014/02/26 00:00:00 |
| 2014/02/26 00:00:00 |
| 2014/02/26 00:00:00 |
+---------------------+

“在将数组转换为json格式之前是否可能。”-除非您首先向我们展示如何创建数组。如果您可以在数据库查询中转换日期格式,这将是一种更快速的方法..我已经在使用ORM查询从表中选择数据,我是写一个单独的子查询还是选择查询。你不需要写单独的查询,在同一个查询中,你可以像上面一样设置日期字段的格式,结果集将有转换格式的日期数据。我在查询中尝试了date_format(),但它返回了这个错误“调用未定义的方法Model_News::date_format()”.hmm不确定您是如何使用它的。您可以检查文档中的ORM以了解如何在查询中使用date_format(),我给出的示例是针对行sql查询的。