Сложение времени в php

89
20 ноября 2021, 18:30

У меня есть переменная которая генерит время

$start_time_with_day = mktime($start_time_arr[0], $start_time_arr[1], 0, $start_day_arr[1], $start_day_arr[2], $start_day_arr[0]);
echo date('H:i d/m/Y ', $start_time_with_day); // выводит 02:55 23/11/2019

И у меня есть время, в формате 22:05, которое нужно добавить к текущей дате. Как мне сложить время, чтобы получить 01:00 24/11/2019 ?

Answer 1
Прибавьте время и вычтите полночь
echo date('H:i d/m/Y ', $start_time_with_day) ."\n"; 
// выводит 02:55 23/11/2019
$time = "22:05"; 
echo date('H:i d/m/Y ', $start_time_with_day+strtotime($time)-strtotime('midnight'));
// выводит 01:00 24/11/2019 

demo

Answer 2

Для работы с датой и временем в PHP есть DateTime в которых учтены подводные камни.

Пример для вашего случая:

<?php
$start_time_with_day = new DateTime('2019-11-23 02:55');
echo $start_time_with_day->format('H:i d/m/Y');
echo "\n";
$start_time_with_day->add(new DateInterval('PT22H5M'));
echo $start_time_with_day->format('H:i d/m/Y');
echo "\n";

Документация по использованию: https://www.php.net/manual/ru/class.datetime.php

READ ALSO
Как протестировать Optional.orElseThrow()

Как протестировать Optional.orElseThrow()

У меня есть метод, использующий репозиторий использующий OptionalorElseThrow внутри сервиса

118
Как вынести org.quartz.jobStore.isClustered из quartz.properties в настройки сервера?

Как вынести org.quartz.jobStore.isClustered из quartz.properties в настройки сервера?

Использовал spring-quartz для выполнения задач по расписанию Все настроил и протестировался на кластере с двумя нодами

152
Просьба помочь, не могу разобраться

Просьба помочь, не могу разобраться

Допишите конструктор в класс Time, который принимает время в секундах

153
Распарсить и распечать период в формате ISO8601

Распарсить и распечать период в формате ISO8601

Я хочу такую строку распарсить P3Y6M4DT12H30M17S(ОДин из форматов) и распечатать 3 года 6 месяцев 4 суток 12 часов 30 минут и 17 секунды

189