2011-08-18 11 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 

こんにちは、私はここで予約コードの有効期限があります。私の問題は、顧客が午前23時30分に予約を行い、予約が(1時間)夜12時30時をもって任期満了となります場合、私はこのコードを作ったということです。現在の時間/日付に1時間の有効期限を追加します。

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

$onehourをインクリメントしなければならないが、問題があることです23:30の予約は24:30に終了する必要があります。しかし、$ 1時間を増やした後、23:30の結果は24:40になります。午前12時の軍事時間は00:00であり、24:00ではないので、私のプログラムは読むことができません。誰も私の問題の提案をすることができますか?ありがとう。怠惰な英語のため申し訳ありませんが、私はそう

+0

を私はあなたがそれらの更新クエリを使用すると、選択した1だけではなく、テーブル内のすべての行を変更します実現を願っています。 –

+0

はい、どうもありがとうございます。私はそれを知っています。 :) – glove

答えて

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

こんにちは、私に説明してくださいstrtotime()関数は何ですか? $ onehour =(日付( "G")+ 1)%24;あなたがこれと投稿したものの違いは何ですか? – glove

+0

@glove: 'strtotime'についてもっと知るには、ドキュメントをチェックしてください:http://php.net/manual/en/function.strtotime.php – Maher4Ever

+0

@glove' $ onehour'を修正して24:40 00:40になると、新しい有効期限は「明日12:40 AM」ではなく「12:40 AMに今日」になります。時間コンポーネントだけでなく、1時間前に日付全体を移動する必要があります。 'strtotime( '+ 1 hour')'は、現在の時刻と1時間のUNIXタイムスタンプを返し、 'date'はそのタイムスタンプをフォーマットします。 –

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

を考えるのに疲れていた、あなたが必要なのは、次のとおりです。

現在の時間が23であればあなただけチェックしていないのはなぜ
$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

?何か(私も三項演算子のPHP構文についてはよく分からない)のような:

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

その後、あなたはまた、現在の日を変更したい、とあなたは年を変更するかどうかを確認します。

0

はそれを試してください:

$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/>"; 
関連する問題