Ответ 1
Для решения PHP <5.0:
<?php
$fulltime = '20110805124000';
$addtime = -5;
$time = substr($fulltime,8,2).":".substr($fulltime,10,2);
$time = date("H:i",strtotime($time) + ($addtime*3600));
echo $time;
?>
У меня есть значение даты, хранящееся в переменной. Мне нужно извлечь временную часть значения в отдельную переменную, а затем добавить/вычесть из нее время.
Переменная даты задается с датой ("YmdHis"), давая (например) 20110805124000 на 5 августа 2011 года, 12:40:00
Из значения 20110805124000 (которое хранится в переменной $ fulltime) мне нужно сохранить время только в формате 12:40 (поэтому игнорируем год, месяц, день и секунды и добавляем двоеточие между часами и минутами) в переменная, называемая $ shorttime. Затем мне нужно добавить несколько часов к этому времени (так, например, +3 часов изменит значение в переменной $ shorttime до 15:40). Количество часов, которые мне нужно добавить, хранится в переменной с именем $ addtime, и это значение может быть отрицательным числом.
Это легко выполнимо? Может ли кто-нибудь помочь?
Благодаря :)
Для решения PHP <5.0:
<?php
$fulltime = '20110805124000';
$addtime = -5;
$time = substr($fulltime,8,2).":".substr($fulltime,10,2);
$time = date("H:i",strtotime($time) + ($addtime*3600));
echo $time;
?>
$time = '2013-01-22 10:45:45';
echo $time = date("H:i:s",strtotime($time));
Это даст время 10:45:45
с даты и времени.
<?PHP
$addhours = 3;
$date = DateTime::createFromFormat('YmdHis', '20110805124000');
$shorttime = $date->format("H:i");
$newdate = $date->add(DateInterval::createFromDateString($addhours . "hours"));
$newtime = $newdate->format("H:i");
echo $shorttime . "<br />";
echo $newtime . "<br />";
?>
для вашей справки:
http://www.php.net/manual/en/datetime.createfromformat.php
http://www.php.net/manual/en/dateinterval.createfromdatestring.php