2012-03-22 3 views
15

Так что мне нужно сделать, это добавить 30 минут к следующемудобавлением 30 минут до настоящего времени

date("Ymdhis"); 

Я попытался это

+strtotime("+30 minutes"); 

однако это, кажется, не нравится. Мне интересно, что правильно, зачем это делать.

+0

Возможный дубликат http://stackoverflow.com/search ? q = добавить + минуты + php – Gordon

ответ

30

Ваш метод использования strtotime должен работать.

<?php 

echo date("Y/m/d H:i:s", strtotime("now")) . "\n"; 
echo date("Y/m/d H:i:s", strtotime("+30 minutes")); 

?> 

Выход

2012/03/22 10:55:45 
2012/03/22 11:25:45 // 30 minutes later 

Однако ваш метод добавления времени, вероятно, не является правильным. Вышеупомянутое будет работать, чтобы добавить 30 минут к текущему времени. Предположим, вы хотите добавить 30 минут от заданного времени, $t, а затем использовать второй параметр strtotime, который используется в качестве базы для расчета относительных дат.

date("Y/m/d H:i:s", strtotime("+30 minutes", $t)); 

http://codepad.org/Z5yquF55

1

Попробуйте что-нибудь подобное.

$Start = "12:00:00"; 
$Minutes = 30; 

$To = date("H:i:s", strtotime($Start)+($Minutes*60)); 
0

Не уверен, что весь ваш код выглядит, но:

date("Ymdhis"); 

возвращает строку. Поэтому не имеет смысла добавить результат к

strtotime("+30 minutes"); 

(который является целым числом) к этой строке.

Вы либо хотите

strtotime("+30 minutes"); 

сам по себе, или

date("Ymdhis", strtotime("+30 minutes")); 

получить отформатированную строку.

+0

Обратите внимание, что во всех этих ответах вы получаете время по Гринвичу (или по UTC или тому, что вы хотите назвать). – matt

0

Возможно, вы имели в виду date("Ymdhis", strtotime("+30 minutes"));? Это будет означать дату, которая будет 30 минут в будущем.

1

Используйте эту функцию:

date("Ymdhis", strtotime("+30 minutes")) 
1

strtotime() принимает второй параметр, который является его отправной точкой.

Если у вас есть date("Ymdhis", $somedate) и хотел добавить 30 минут к нему, вы можете сделать date("Ymdhis", strtotime("+30 minutes", $someddate))

0
<?php 
print date("Y-m-d h:i:s", (time() + (60*30))); 
?> 
3

Я тестировал этот код, но он не работает для меня:

$t = date(); 
date("Y/m/d h:i:s", strtotime("+30 minutes", $t)); 

Вот мое решение

//This is where you put the date, but I use the current date for this example 
$date = date("Y-m-d H:i:s"); 

//Convert the variable date using strtotime and 30 minutes then format it again on the desired date format 
$add_min = date("Y-m-d H:i:s", strtotime($date . "+30 minutes")); 
echo $date . "<br />"; //current date or whatever date you want to put in here 
echo $add_min; //add 30 minutes 
Смежные вопросы