У меня есть переменная PHP 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('Ymd H:i:s') . "\n"; $date->sub(new DateInterval('PT12H30M')); echo $date->format('Ymd H:i:s') . "\n";
// Результат
2011-04-30 05:00:00 2011-04-29 16:30:00
Попробуйте strtotime()
:
$ source_timestamp = strtotime («Сб, 30 апр 2011 05:00:00 -0400»); $ new_timestamp = strtotime («- 12 часов 30 минут», $ source_timestamp); дата печати ('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('Ymd H:i',strtotime('+1 hour +20 minutes',strtotime($start)));
Сохраните его в объекте DateTime
а затем используйте метод DateTime::sub
чтобы вычесть временной интервал.
Использование просто strtotime
echo date("Ymd H:i:s",strtotime("-12 hour -30 minutes"));
Использование класса DateTime
$date = new DateTime("-12 hour -30 minutes"); echo $date->format("Ymd H:i:s");
Вот подробное описание функции даты,