У меня есть 1 строка, как 8/29/2011 11:16:12 AM
Я хочу сохранить в переменной, как $ dat = 8/29/2011 и $ tme = 11:16:12 AM
как это возможно? Можете ли вы привести мне пример?
Например
<?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
edit: Чтобы использовать формат AM / PM
$time = $dt->format('h:i:s A');
<?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
Вы можете использовать функцию strtotime, если даты начинаются после 1/1/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 из строки, которую вы передаете ей.
Если ваша версия PHP достаточно новая, проверьте date_parse () и возвращаемый массив. Затем вы можете форматировать дату или время, используя соответствующие записи.
Это, вероятно, не самый чистый способ сделать это, но вы можете использовать взрыв (обратите внимание, что здесь вообще нет подтверждения). Это будет быстрее, чем правильная манипуляция датами.
$str = '8/29/2011 11:16:12 AM'; $dates = explode(' ', $str); $dat = $dates[0]; $time = $dates[1];
Это должно сделать трюк:
$mystring_datetime = ....; $dt = DateTime::createFromFormat('m/d/YH: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
имеют соответствующие значения …
Да, это возможно, и прекрасный пример можно найти здесь http://php.net/manual/en/function.date.php
Удачи,