У меня есть значение даты, хранящееся в переменной. Мне нужно извлечь временную часть значения в отдельную переменную, а затем добавить / вычесть из нее время.
Переменная даты задается с датой («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