Конвертировать строку даты и времени в массив php - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть строка с датой и временем 2018-12-05 03:05:43 Как преобразовать ее в массив, как этот формат:

[2018, 12, 5, 3, 5, 43]

Ответы [ 3 ]

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

Вы можете проанализировать дату, используя класс PHP * DateTime, и вывести каждый компонент отдельно:

$date = date_create_from_format('Y-m-d H:i:s', '2018-12-05 03:05:43');
$array = array(
    (int)$date->format('Y'),
    (int)$date->format('m'),
    (int)$date->format('d'),
    (int)$date->format('H'),
    (int)$date->format('i'),
    (int)$date->format('s')
    );
print_r($array);

Вывод:

Array ( 
    [0] => 2018
    [1] => 12
    [2] => 5
    [3] => 3
    [4] => 5
    [5] => 43
)

Демона 3v4l.org

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

Вы также можете использовать регулярные выражения.

Шаблон находит необязательный ноль и любую цифру (ы).
Ноль не является частью захвата, поэтому не будет представлен в массиве [1].

$str ="2018-12-05 03:05:43";

preg_match_all("/0*(\d+)/", $str, $arr);
$arr = $arr[1]; // only keep the capture
var_dump($arr);

Вывод:

array(6) {
  [0]=>
  string(4) "2018"
  [1]=>
  string(2) "12"
  [2]=>
  string(1) "5"
  [3]=>
  string(1) "3"
  [4]=>
  string(1) "5"
  [5]=>
  string(2) "43"
}

https://3v4l.org/1sGSR

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

Вы можете использовать explode () и merge ()

$tmp1 = explode(' ', '2018-12-05 03:05:43');
$tmp2 = explode('-', $tmp1[0]);
$tmp3 = explode(':', $tmp1[1]);

$merge = array_merge($tmp2, $tmp3); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...