добавить час-минута к дате
может кто-нибудь помочь мне в проблеме, что я застрял в течение долгих часов, я пытаюсь добавить время, как в формате h:ia
с часами и минутами в формате 01:00
(один час), 00:30
(30 минут), 02:00
(два часа) и т.п.. в php.
Поскольку у меня есть часы в формате, таком как ('00:30','01:00','01:30','02:00')
до времени, которое у меня уже есть. я попробовал это
$interval="01:00";
$now=new DateTime('h:ia');
$time=($now,strtotime(+$interval,$now));
но он не работает. Любая помощь будет оценена.
вы должны проверить документацию strtottime(), чтобы добавить 1 час просто использовать
strtotime("+1 hour");
вы также можете использовать time() + 60*60
Существует также метод в объекте DateTime, называемый " add ", который вы можете использовать.
Из руководства:
DateTime :: add-date_add - добавляет количество дней, месяцев, лет, часов, минут и секунд к объекту DateTime
Вы можете создать объект DateInterval и добавить интервал к exsiting объекта DateTime.
Для форматирования даты вы можете использовать метод format() для объекта DateTime.
Отредактировано:
Простой взрыв может также решить вашу проблему.
$interval="01:00";
$xp = explode(":", $interval);
$time=time() + (int)$xp[0] * 60*60 + (int)$xp[1]*60;
echo date("h:ia", $time);
Или более объектно-ориентированный
$interval="01:00";
$now=new DateTime();
$now->add(new DateInterval("P0000-00-00T$interval:00"));
echo $now->format('h:ia');
Вы могли бы попробовать что-то вроде этого:
$interval = "01:00";
$yourInterval = new DateInterval('P0000-00-00T'.$interval.':00');
//Setting the date and seconds to "0"
$time = new DateTime('now');
//Or any other method to get your DateTime
$time->add($yourInterval);
Я думаю, что во всех случаях вы должны использовать DateTime и DateInterval, OR strtotime(), я не уверен в их смешении. Я предпочитаю использовать DateTime и DateInterval, потому что он больше ориентирован на объекты.
Во всех случаях я советую не взорваться на дату операции. Это очень опасно из-за многих проблем, которые вы не можете предсказать (например, бисекстильные секунды и т.д.)
EDIT: Я предполагаю, что если вы просто манипулируете временем, а не дате, взрыва вашей строки не проблема, основная проблема заключается в том, что вы используете даты.