Как получить время и дату от даты и времени в php - PullRequest
31 голосов
/ 28 марта 2012

У меня есть 1 строка как 8/29/2011 11:16:12 AM Я хочу сохранить в переменной, как $ dat = 29.08.2011 и $ tme = 11:16:12

как это возможно?можешь привести пример?

Ответы [ 7 ]

62 голосов
/ 28 марта 2012

Например

<?php
$s = '8/29/2011 11:16:12 AM';
$dt = new DateTime($s);

$date = $dt->format('m/d/Y');
$time = $dt->format('H:i:s');

echo $date, ' | ', $time;

см. http://docs.php.net/class.datetime


редактировать: для сохранения формата AM / PM используйте

$time = $dt->format('h:i:s A');
6 голосов
/ 28 марта 2012

Вы можете использовать функцию strtotime, если даты начинаются после 01.01.1970 -

<?php

$s = strtotime('8/29/2011 11:16:12 AM');

$date = date('m/d/Y', $s);
$time = date('H:i:s A', $s);

?>

http://php.net/manual/en/function.strtotime.php

strtotime создает метку времени UNIX из строки, которую выперейти к нему.

6 голосов
/ 28 марта 2012
<?php
    $date = strtotime('8/29/2011 11:16:12 AM');
    $dat = date('m/d/y', $date);
    $tme = date('H:m:s A',$date);

?>

Для получения дополнительной информации о функции date (), посетите PLZ http://php.net/manual/en/function.date.php

3 голосов
/ 28 марта 2012

Вероятно, это не самый чистый способ сделать это, но вы можете использовать разнесение (обратите внимание, что здесь вообще НЕТ проверки). Это будет быстрее, чем правильная манипуляция с датой.

$str = '8/29/2011 11:16:12 AM';
$dates = explode(' ', $str);
$dat = $dates[0];
$time = $dates[1];
2 голосов
/ 28 марта 2012

Если ваша версия PHP достаточно новая, проверьте date_parse () и массив, который он возвращает.Затем вы можете отформатировать части даты или времени, используя соответствующие записи.

1 голос
/ 28 марта 2012

Это должно сработать:

$mystring_datetime = ....;
$dt = DateTime::createFromFormat('m/d/Y H:i:s A', $mystring_datetime );
$d = $dt->format('m/d/Y');
$t = $dt->format('H:i:s A');

Вы также можете сделать что-то подобное, но это не предпочтительный способ:

$mystring_datetime = ....;
list($date, $time) = explode(' ', $mystring_datetime, 2);

Теперь $date и $time имеют соответствующие значения ...

0 голосов
/ 28 марта 2012

Да, это возможно, и идеальный пример можно найти здесь http://php.net/manual/en/function.date.php

Удачи,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...