如何将字符串日期(从数据库)拆分为年,月和日

时间:2016-11-25 02:44:01

标签: php cakephp

您好我有以下php事件

public function onRenderDate(Event $event, $propertyValue)
{
    // $propertyValue will be something like 1970-01-01,need to split the value in to following format
    pr($propertyValue);
    pr(getType($propertyValue));

    $arr = [
        'year' => 2016,
        'month' => 07,
        'day' => 01
    ];

    return $arr;
}

现在我对$ arr进行了硬编码,如何将$ propertyValue(返回字符串日期(2016-10-05T00:00:00 + 00:00))拆分为$ arr,以便我可以获得每个人都有这样的价值观?伙计们好吗?提前致谢

2 个答案:

答案 0 :(得分:1)

public function onRenderDate(Event $event, $propertyValue)
{
    $time = strtotime( $propertyValue);
    $newformat = date('Y-m-d',$time);
    $newformatArr = explode('-',$newformat);


        $arr = [
            'year' => $newformatArr[0],
            'month' => $newformatArr[1],
            'day' => $newformatArr[2]
        ];

    return $arr;

}

答案 1 :(得分:0)

你可以使用strtotime()php函数来做到这一点。该函数期望给出一个包含英文日期格式的字符串,并尝试将该格式解析为Unix时间戳。使用时间戳,您可以使用date()函数获取日,月和年。下面我更新了你的功能。

public function onRenderDate(Event $event, $propertyValue)
{
    $timestamp = strtotime( $propertyValue);

        $arr = [
            'year' => date('Y', $timestamp),
            'month' => date('m', $timestamp),
            'day' => date('d', $timestamp)
        ];

    return $arr;

}