2011-12-18 2 views
26

Эта простая вещь впустую часов моего времени, пытаясь получить его работу, до сих пор havnt работал его ...Добавление 1 час времени переменной

я есть

$time = '10:09'; 

Я хочу, чтобы добавить час, что ...

Итак, я попробовал:

$time = strtotime('+1 hour'); 

strtotime('+1 hour', $time); 

$time = date('H:i', strtotime('+1 hour')); 

ни одно из вышеперечисленного не работал.

Можете ли вы, ребята, помочь мне?

Спасибо.

+4

'$ времени = 10: 09;' не правильный способ определения времени – Robus

ответ

56

Работал для меня ..

$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 
+0

Спасибо за этот мат. Очень признателен. –

+0

простой и работа. – Cleverson

+0

если мне нужно дефрагментировать час ('10: 09 ') - 60 * 60; Будет работать ?? – TarangP

14
$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 
0

Остерегайтесь добавлениями 3600 !! может быть проблемой при изменении дня из-за того, что формат timestamp unix использует моль перед днем.

например. 2012-03-02 23:33:33 станет 2014-01-13 13:00:00, добавив 3600 лучших вариантов использования mktime и даты, с которыми они могут справиться, и такие вещи, как добавление 25 часов и т. Д.

15

Вы можете сделать как этот

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')); 
-2

Простое и умное решение:

date("H:i:s", time()+3600); 
6

попробовать это он работал для меня.

$time="10:09"; 
$time = date('H:i', strtotime($time.'+1 hour')); 
echo $time; 
+0

Удивительно прямо вперед спасибо! $ timeFormat = date ("d/m/y H: i: s", strtotime ($ timeFormat. '+ 8 hours')); –

+0

В моем случае я хочу добавить 1,30 часа. Давать +1.30 не получилось, как ожидалось. Есть какой-либо способ сделать это ? – Pravin

+1

@Pravin '$ time = date ('H: i', strtotime ($ time. '+ 1 hour'. '+ 30 minutes'));' –

0

Вы можете попробовать этот код

$ = время '10: 09' ;

echo date ('H: i', strtotime ('+ 1 час', strtotime ($ time)));

3

для этой проблемы, пожалуйста, следуйте сильфону коду:

$time= '10:09'; 
$new_time=date('H:i',strtotime($time.'+ 1 hour')); 
echo $new_time;` 
// now output will be: 11:09 
+1

'strtotime ($ time. '+ 1 hour')' работает очень хорошо - спасибо –

+0

В моем случае я хочу добавить 1,30 часа. Давать +1.30 не получилось, как ожидалось. Есть какой-либо способ сделать это ? – Pravin

Смежные вопросы