У меня есть переменная PHP DateTime.
DateTime
Как можно уменьшить или вычесть 12 часов и 30 минут с этой даты во время выполнения PHP?
Вычтите 12 часов и 30 минут из DateTime в PHP:
$date = new DateTime(); $tosub = new DateInterval('PT12H30M'); $date->sub($tosub);
P обозначает период.T обозначает Timespan.
См. DateTime , DateTime :: sub и DateInterval в руководстве по PHP.Вам, конечно, придется установить DateTime на соответствующую дату и время.
Попробуйте с помощью:
$date = new DateTime('Sat, 30 Apr 2011 05:00:00 -0400'); echo $date->format('Y-m-d H:i:s') . "\n"; $date->sub(new DateInterval('PT12H30M')); echo $date->format('Y-m-d H:i:s') . "\n";
// Результат
2011-04-30 05:00:00 2011-04-29 16:30:00
Попробуйте strtotime() Функция:
strtotime()
$source_timestamp=strtotime("Sat, 30 Apr 2011 05:00:00 -0400"); $new_timestamp=strtotime("-12 hour 30 minute", $source_timestamp); print date('r', $new_timestamp);
попробуйте использовать это вместо
//set timezone date_default_timezone_set('GMT'); //set an date and time to work with $start = '2014-06-01 14:00:00'; //display the converted time echo date('Y-m-d H:i',strtotime('+1 hour +20 minutes',strtotime($start)));
Используя просто strtotime
strtotime
echo date("Y-m-d H:i:s",strtotime("-12 hour -30 minutes"));
Использование DateTime класс
$date = new DateTime("-12 hour -30 minutes"); echo $date->format("Y-m-d H:i:s");
Вот подробное описание функции даты,
Сохраните его в объекте DateTime, а затем используйте метод DateTime::sub, чтобы вычесть временной интервал.
DateTime::sub