Нужна дата из массива DateTimeObject - PullRequest
0 голосов
/ 28 декабря 2018

Мне нужно отформатировать дату и время из массива 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 голосов
/ 28 декабря 2018

Предполагая, что ваш массив такой:

$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:

0 голосов
/ 28 декабря 2018

Предполагая, что все элементы в вашем массиве соответствуют показанным в вашем вопросе, вы можете просто использовать 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 
)

Демонстрация на 3v4l.org

0 голосов
/ 28 декабря 2018

Попробуйте использовать это http://php.net/manual/en/datetime.format.php

foreach ($dates as $date) {
 echo $date->format('Y-m-d');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...