DBエントリに有効期限を設定しようとしています。フィールドをに設定し、datetime
MySQLを介して手動でいくつかの値を入力しました
テーブルから値を取得して、に変換しstrtotime()
ます。次に、strtotime("now")
;を使用して現在の時刻を取得します。またはtime()
; それらは同じ値を返すようでした。
次に、将来の日付(データベースからの日付)を取得し、ifステートメントを使用して、現在の時刻よりも小さいかどうかを確認します。その場合は、期限切れとして設定します。それでも現在の時間よりも大きい場合は、残り時間を返します。
そのためのコードは次のとおりです。
$time_left = "";
$value['ex_date'] = '2012-11-22 18:17:33';// this is whats in the DB now.
$future_time = strtotime($value['ex_date']);
$now_time = strtotime('now');
if($deal_end < $now_time){
$time_left = 'Expired';
}else{
$seconds = $future_time - $now_time;
$days = floor($seconds / 86400);
$seconds %= 86400;
$hours = floor($seconds / 3600);
$seconds %= 3600;
$minutes = floor($seconds / 60);
$seconds %= 60;
if($days >= 1) {$time_left .= "D:$day ";}
if($hours >= 1) {$time_left .= "H:$hours ";}
if($minutes >= 1) {$time_left .= "M:$minutes ";}
if($seconds >= 1) {$time_left .= "S:$seconds ";}
何らかの理由で、上記はうまく機能しません。少し時間差があるようです。
私の質問は:サーバー時間とデータベース時間をチェックする方法はありますか?
どういうわけか、strtotime('now');
時間は現在の時間とは2/3時間ほど違うように見えるからです。