Добавление переменной от 1 часа до времени
Эта простая вещь потратила впустую часы моего времени, пытаясь заставить ее работать, но havnt не разработал ее...
У меня есть
$time = '10:09';
Я хочу добавить час к этому...
Итак, я пробовал:
$time = strtotime('+1 hour');
strtotime('+1 hour', $time);
$time = date('H:i', strtotime('+1 hour'));
Ничего из этого не было сделано.
Можете ли вы, ребята, помочь мне?
Спасибо.
Ответы
Ответ 1
Работал для меня..
$timestamp = strtotime('10:09') + 60*60;
$time = date('H:i', $timestamp);
echo $time;//11:09
Пояснение:
strtotime('10:09')
создает цифровую метку времени в секундах, что-то вроде 1510450372
. Просто добавьте или удалите необходимое количество секунд и используйте date()
, чтобы преобразовать его обратно в читаемый человеком формат.
$timestamp = strtotime('10:09') + 60*60; // 10:09 + 1 hour
$timestamp = strtotime('10:09') + 60*60*2; // 10:09 + 2 hours
$timestamp = strtotime('10:09') - 60*60; // 10:09 - 1 hour
time()
также создает цифровую метку времени, но прямо сейчас. Вы можете использовать его таким же образом.
$timestamp = time() + 60*60; // now + 1 hour
Ответ 2
Вы можете сделать это следующим образом:
echo date('Y-m-d H:i:s', strtotime('4 minute'));
echo date('Y-m-d H:i:s', strtotime('6 hour'));
echo date('Y-m-d H:i:s', strtotime('2 day'));
Ответ 3
$time = '10:09';
$timestamp = strtotime($time);
$timestamp_one_hour_later = $timestamp + 3600; // 3600 sec. = 1 hour
// Formats the timestamp to HH:MM => outputs 11:09.
echo strftime('%H:%M', $timestamp_one_hour_later);
// As crolpa suggested, you can also do
// echo date('H:i', $timestamp_one_hour_later);
Проверьте руководство по PHP для strtotime(), strftime() и date() для деталей.
Кстати, в вашем исходном коде вам нужно добавить некоторые кавычки, иначе вы получите ошибки синтаксиса PHP:
$time = 10:09; // wrong syntax
$time = '10:09'; // syntax OK
$time = date(H:i, strtotime('+1 hour')); // wrong syntax
$time = date('H:i', strtotime('+1 hour')); // syntax OK
Ответ 4
попробуйте, это сработало для меня.
$time="10:09";
$time = date('H:i', strtotime($time.'+1 hour'));
echo $time;
Ответ 5
для этой проблемы, пожалуйста, выполните следующий код:
$time= '10:09';
$new_time=date('H:i',strtotime($time.'+ 1 hour'));
echo $new_time;`
// now output will be: 11:09
Ответ 6
2019 Обновление
Странно, что никто не предложил путь ООП:
$date = new \DateTime(); //now
$date->add(new \DateInterval('PT3600S'));//add 3600s / 1 hour
ИЛИ ЖЕ
$date = new \DateTime(); //now
$date->add(new \DateInterval('PT60M'));//add 60 min / 1 hour
ИЛИ ЖЕ
$date = new \DateTime(); //now
$date->add(new \DateInterval('PT1H'));//add 1 hour
Извлеките его в строку с форматом:
var_dump($date->format('Y-m-d H:i:s'));
Я надеюсь, что это помогает
Ответ 7
Вы можете использовать:
$time = strtotime("10:09") + 3600;
echo date('H:i', $time);
Или date_add
: http://www.php.net/manual/en/datetime.add.php
Ответ 8
Простое и умное решение:
date("H:i:s", time()+3600);
Ответ 9
Остерегайтесь добавления 3600! может быть проблемой при изменении дня, потому что формат timestamp unix использует моль перед днем.
например. 2012-03-02 23:33:33 станет 2014-01-13 13:00:00, добавив 3600 лучших функций использования mktime и даты, с которыми они могут справиться, и такие вещи, как добавление 25 часов и т.д.
Ответ 10
Вы можете попробовать этот код:
$time = '10:09';
echo date( 'H:i', strtotime( '+1 hour' , strtotime($time) ) );
Ответ 11
Как сказал учащийся, перестаньте использовать не-ООП способом, мы в 2019 году! Проще и безопаснее пользоваться ООП классом. Большое спасибо за пост учащегося