Php 如何在这个json结构中从日期中删除时间信息?

Php 如何在这个json结构中从日期中删除时间信息?,php,json,date,cakephp,cakephp-3.0,Php,Json,Date,Cakephp,Cakephp 3.0,我使用的是CakePHPV3 我有一个简单的模型函数 public function getXXXoutput($xxx_term, $start_date, $end_date) { $monthly_XXX_curves = TableRegistry::get('MonthlyXXXCurves'); $query = $monthly_XXX_curves ->find()

我使用的是CakePHPV3

我有一个简单的模型函数

public function getXXXoutput($xxx_term, $start_date, $end_date)    
{           
    $monthly_XXX_curves = TableRegistry::get('MonthlyXXXCurves');        
    $query = $monthly_XXX_curves
            ->find()                        
            ->select( ['date_transacted', 'output'] ) 
            ->toArray();

    return $query;        
}
控制器函数如下所示

public function apiGetXXX()
{
    $json_output = $this->MonthlyXXXCurves->getXXXoutput($xxx_term, $start_date, $end_date);
    echo json_encode($json_output);
}
[
{
output: 1.37,
date_transacted: "2015-01-01T00:00:00+0000"
},
{
output: 1.62,
date_transacted: "2015-02-01T00:00:00+0000"
}
]
[
{
output: 1.37,
date_transacted: "2015-01-01"
},
{
output: 1.62,
date_transacted: "2015-02-01"
}
]
控制器返回的json格式如下所示

public function apiGetXXX()
{
    $json_output = $this->MonthlyXXXCurves->getXXXoutput($xxx_term, $start_date, $end_date);
    echo json_encode($json_output);
}
[
{
output: 1.37,
date_transacted: "2015-01-01T00:00:00+0000"
},
{
output: 1.62,
date_transacted: "2015-02-01T00:00:00+0000"
}
]
[
{
output: 1.37,
date_transacted: "2015-01-01"
},
{
output: 1.62,
date_transacted: "2015-02-01"
}
]
我想从
date\u transactive
中删除时间信息,以便最终的json结构如下所示

public function apiGetXXX()
{
    $json_output = $this->MonthlyXXXCurves->getXXXoutput($xxx_term, $start_date, $end_date);
    echo json_encode($json_output);
}
[
{
output: 1.37,
date_transacted: "2015-01-01T00:00:00+0000"
},
{
output: 1.62,
date_transacted: "2015-02-01T00:00:00+0000"
}
]
[
{
output: 1.37,
date_transacted: "2015-01-01"
},
{
output: 1.62,
date_transacted: "2015-02-01"
}
]

如何修改控制器函数以获得所需的json结构?

在查询中选择“交易日期”并格式化为“日期”

public function getXXXoutput($xxx_term, $start_date, $end_date)    
{           
    $monthly_XXX_curves = TableRegistry::get('MonthlyXXXCurves');        
    $query = $monthly_XXX_curves
            ->find()                        
            ->select(['transacted' => 'DATE(date_transacted)', 'output']) 
            ->toArray();

    return $query;        
}

选择交易日期并在查询中设置为日期

public function getXXXoutput($xxx_term, $start_date, $end_date)    
{           
    $monthly_XXX_curves = TableRegistry::get('MonthlyXXXCurves');        
    $query = $monthly_XXX_curves
            ->find()                        
            ->select(['transacted' => 'DATE(date_transacted)', 'output']) 
            ->toArray();

    return $query;        
}

选择交易日期并在查询中设置为日期

public function getXXXoutput($xxx_term, $start_date, $end_date)    
{           
    $monthly_XXX_curves = TableRegistry::get('MonthlyXXXCurves');        
    $query = $monthly_XXX_curves
            ->find()                        
            ->select(['transacted' => 'DATE(date_transacted)', 'output']) 
            ->toArray();

    return $query;        
}

选择交易日期并在查询中设置为日期

public function getXXXoutput($xxx_term, $start_date, $end_date)    
{           
    $monthly_XXX_curves = TableRegistry::get('MonthlyXXXCurves');        
    $query = $monthly_XXX_curves
            ->find()                        
            ->select(['transacted' => 'DATE(date_transacted)', 'output']) 
            ->toArray();

    return $query;        
}

我不熟悉CakePHP,因此不知道这一切是如何处理的。我所知道的是,
$json_output
是一个数组,因此可以循环和修改

foreach ($json_output as $key => $value) {
    $date = new DateTime($json_output[$key]['date_transacted']);
    $json_output[$key]['date_transacted'] = $date->format('Y-m-d');
}
在前面添加上述内容:

echo json_encode($json_output);

我不熟悉CakePHP,因此不知道这一切是如何处理的。我所知道的是,
$json_output
是一个数组,因此可以循环和修改

foreach ($json_output as $key => $value) {
    $date = new DateTime($json_output[$key]['date_transacted']);
    $json_output[$key]['date_transacted'] = $date->format('Y-m-d');
}
在前面添加上述内容:

echo json_encode($json_output);

我不熟悉CakePHP,因此不知道这一切是如何处理的。我所知道的是,
$json_output
是一个数组,因此可以循环和修改

foreach ($json_output as $key => $value) {
    $date = new DateTime($json_output[$key]['date_transacted']);
    $json_output[$key]['date_transacted'] = $date->format('Y-m-d');
}
在前面添加上述内容:

echo json_encode($json_output);

我不熟悉CakePHP,因此不知道这一切是如何处理的。我所知道的是,
$json_output
是一个数组,因此可以循环和修改

foreach ($json_output as $key => $value) {
    $date = new DateTime($json_output[$key]['date_transacted']);
    $json_output[$key]['date_transacted'] = $date->format('Y-m-d');
}
在前面添加上述内容:

echo json_encode($json_output);

当您使用
ORM
获取记录时,它会将
日期和时间字段
作为
Cake\I18n\time
对象带回,该对象从
Carbon
扩展而来,而
Carbon
则从
DateTime
扩展而来。您可以调用
i18nFormat
format
方法

在引擎盖下,CakePHP使用碳为其时间效用提供动力。任何你能用碳和日期时间做的事情,你都可以用时间来做。 有关碳的详细信息,请参阅


当您使用
ORM
获取记录时,它会将
日期和时间字段
作为
Cake\I18n\time
对象带回,该对象从
Carbon
扩展而来,而
Carbon
则从
DateTime
扩展而来。您可以调用
i18nFormat
format
方法

在引擎盖下,CakePHP使用碳为其时间效用提供动力。任何你能用碳和日期时间做的事情,你都可以用时间来做。 有关碳的详细信息,请参阅


当您使用
ORM
获取记录时,它会将
日期和时间字段
作为
Cake\I18n\time
对象带回,该对象从
Carbon
扩展而来,而
Carbon
则从
DateTime
扩展而来。您可以调用
i18nFormat
format
方法

在引擎盖下,CakePHP使用碳为其时间效用提供动力。任何你能用碳和日期时间做的事情,你都可以用时间来做。 有关碳的详细信息,请参阅


当您使用
ORM
获取记录时,它会将
日期和时间字段
作为
Cake\I18n\time
对象带回,该对象从
Carbon
扩展而来,而
Carbon
则从
DateTime
扩展而来。您可以调用
i18nFormat
format
方法

在引擎盖下,CakePHP使用碳为其时间效用提供动力。任何你能用碳和日期时间做的事情,你都可以用时间来做。 有关碳的详细信息,请参阅




您想在从数据库获取数据时执行此操作???@Niranjan N Raju,只要我获得所需的json结构,就没有首选项什么格式是
$start\u date
$end\u date
?#Peter,它们是字符串格式您想在从数据库获取数据时执行此操作???@Niranjan Raju,只要我得到所需的json结构,就没有首选项什么格式是
$start\u date
$end\u date
?#Peter,它们是字符串格式您想在从数据库获取时执行此操作吗??@Niranjan Raju,只要我得到所需的json结构,就没有首选项什么格式是
$start\u date
$end\u date
?#Peter,它们是字符串格式您想在从数据库获取时执行此操作吗??@Niranjan Raju,只要我得到所需的json结构,就没有首选项什么格式是
$start\u date
$end\u date
。有一个语法错误“SQLSTATE[42000]:语法错误或访问冲突:“阅读如何使用SQL函数@Salines,您将
fields'传递给
select`,而不是date对象。在这本书中,您有一个示例,说明如何将所选答案的日期格式化为正确答案,因为这是Cakephp方式。谢谢我试过了,但不起作用。有一个语法错误“SQLSTATE[42000]:语法错误或访问冲突:“阅读如何使用SQL函数@Salines,您将
fields'传递给
select`,而不是date对象。在这本书中,您有一个示例,说明如何将所选答案的日期格式化为正确答案,因为这是Cakephp方式。谢谢我试过了,但不起作用。有一个语法错误“SQLSTATE[42000]:语法错误或访问冲突:“阅读如何使用SQL函数@Salines,您将
fields'传递给
select`,而不是date对象。在这本书中,您有一个示例,说明如何将所选答案的日期格式化为正确答案,因为这是Cakephp方式。谢谢我试过了,但不起作用。有一个语法错误“SQLSTATE[42000]:语法错误或访问冲突:“阅读如何使用SQL函数@Salines,您将
fields'传递给
select`,而不是date对象。在这本书中,您有一个示例,说明如何将所选答案的日期格式化为正确答案,因为这是Cakephp方式。谢谢它在做了一个小修改后就可以工作了。由于cakephp中的命名空间问题,将
DateTime
更改为“\DateTime”。有一件事我不明白。你为什么需要$va