2011-08-18 9 views
5
//expiration 
$datetoday = date("F j, Y, G:i"); 

$expquery = mysql_query("SELECT a_expire FROM regform_admin WHERE status = 'Pending for payment'"); 
$row = mysql_fetch_array($expquery); 
$expirydate = $row['a_expire']; 
echo "$datetoday"; 
echo "$expirydate"; 
if ($datetoday == $expirydate) { 
    $expirequery = mysql_query("UPDATE regform_admin SET status = 'Expired' WHERE status = 'Pending'"); 
    $expirequery2 = mysql_query("UPDATE regform SET status = 'Expired' WHERE status = 'Pending'"); 
} 
//end expiration 

Witam, mam wygaśnięcie kodu rezerwacji tutaj. Moim problemem jest to, że jeśli klient dokonuje rezerwacji na 23:30 i rezerwacja wygasa na 00:30 (1 godzina), zrobiłem ten kod:Dodaj 1-godzinne wygaśnięcie do bieżącego czasu/daty

$currentdate = date("F j, Y, G:i"); 
$onehour = date("G") + 1; 
$expire = date("F j, Y, $onehour:i"); 

$onehour musi przyrostowych, ale problemem jest to, że rezerwacja o godzinie 23:30 musi wygasnąć o 24:30. Ale po zwiększeniu o jedną godzinę, 23:30 kończy się 24:40. Którego program nie może odczytać, ponieważ czas wojskowy o godzinie 00:00 to 00:00, a nie 24:00. Czy ktoś może mieć sugestie dotyczące mojego problemu? Dzięki. Niestety dla leniwych angielski byłem zmęczony myślenia

+0

Mam nadzieję, że zdajesz sobie sprawę, te zapytania aktualizacja zmieni każdy wiersz w tabeli, a nie tylko jeden wybrany. –

+0

Tak, dziękuję bardzo. Jestem tego świadomy. :) – glove

Odpowiedz

10
$expire = date("F j, Y, H:i", strtotime('+1 hour')); 
+0

Witam, czy możesz wyjaśnić mi, czym jest funkcja strtotime()? Jaka jest różnica między tą, która została wysłana z tym: $ jedenhour = (data ("G") + 1)% 24; – glove

+0

@glove: Aby dowiedzieć się więcej o 'strtotime', sprawdź dokumentacje: http://php.net/manual/en/function.strtotime.php – Maher4Ever

+0

@ rękawiczka Jeśli właśnie zmodyfikowałeś' $ onehour' i został on skorygowany 24:40 00:40, twój nowy czas wygaśnięcia będzie "dzisiaj o 12:40" zamiast "jutro o 12:40" ... musisz przesunąć całą datę o 1 godzinę do przodu, a nie tylko o godzinę. 'strtotime ('+ 1 hour')' zwraca znacznik czasu UNIX bieżącego czasu plus jedną godzinę, a następnie 'date' formatuje ten znacznik czasu. –

0
$one_hour_from_now = strtotime('+1 hour'); 

Tak, wszystko czego potrzebujesz to:

$expire = date('F j, Y, G:i', strtotime('+1 hour')); 
2
$expire = date("F j, Y, H:i", time()+3600); // 3600 sec in hour 
-1

Dlaczego nie można po prostu sprawdzić, czy prąd jest 23 godziny ? Coś podobnego (nie jestem pewien co do składni PHP operatora potrójnego chociaż):

$onehour = date("G) > 22 ? 0 : date("G) + 1; 

Wtedy też chcą zmienić bieżący dzień, i sprawdzić, czy zmienić rok.

0

spróbować:

$t = strtotime('2015-10-27 11:19:04'); 
$d = date('Y-m-d H:i:s', $t); 
echo $d . "<br/>"; 
$t = $t + 3600; 
$d = date('Y-m-d H:i:s', $t); 
echo $d . "<br/>";