需要来自数组DateTimeObject的日期

时间:2018-12-27 21:49:38

标签: php mysql datetime

我需要从php数组格式化日期时间,我是这样从mysql收到的:

Array(
    [0] => Array
        (
            [Holidays] => DateTime Object
                (
                    [date] => 2018-01-01 00:00:00.000000
                    [timezone_type] => 3
                    [timezone] => Europe/Berlin
                )

       ) )

但是我需要这样的新数组:

Array
(
    [0] => 2018-12-31
    [1] => 2018-12-07
)

看到这样的帖子,但没有datetimeobject

3 个答案:

答案 0 :(得分:0)

尝试使用此http://php.net/manual/en/datetime.format.php

foreach ($dates as $date) {
 echo $date->format('Y-m-d');
}

答案 1 :(得分:0)

假设您的数组是这样的:

$array=array("2018-01-01 00:00:00.000000","2018-02-01 06:10:59.000000");

您可以尝试使用Date和strtotime格式化数据

foreach($array as $date){
    echo "Date Format: ".Date('Y-m-d',strtotime($date))."<br>";
    echo "Datetime Format: ".Date('Y-m-d H:i:s',strtotime($date))."<br>";
}

我希望它可以帮助C:

答案 2 :(得分:0)

假设数组中的所有元素均与问题中显示的一样,则只需使用array_map即可翻译数组。例如:

$a = array(array('Holidays' => new DateTime('2018-01-01', new DateTimeZone('Europe/Berlin'))),
           array('Holidays' => new DateTime('2018-01-26', new DateTimeZone('Australia/Sydney'))));
print_r($a);
$a = array_map(function ($v) { return $v['Holidays']->format('Y-m-d'); }, $a);
print_r($a);

输出:

Array (
    [0] => 2018-01-01
    [1] => 2018-01-26 
)

Demo on 3v4l.org