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查询的。