1

24 時間ごとにデータベース内のアイテムに投票できる投票スクリプトと、24 時間が経過したかどうかを確認するためのコードと、'NOW()'および.'DATE_SUB( NOW()'INTERVAL 1 DAY'

現在、以下のコードを使用して、ユーザーが再度投票できるようになるまでの残り時間を表示する機能を追加しようとしています。

$time = explode(" ", $voteCheck[1]);
$year = explode("-", $time[0]);
$date = explode(":", $time[1]);

// Set it all to one long string
$time = $year[0].$year[1].$year[2].$date[0].$date[1].$date[2];

// Current time and date
$cTime = date("YmdHis");

// I get lost here

votcheck は、最初の行を 0 または 1 として返す SQL 文字列の配列です。ユーザーが既に投票した場合は 1、ユーザーが再度投票できる場合は 0 です。2 行目は、ユーザーが投票した日時を返します。ユーザーが再び投票できるようになるまでにx時間の残り時間を得るために何をすべきかを理解できないようです。

私の主な問題は、$time 文字列の長さが 13 文字になることもあれば、14 文字になることもあります。

4

2 に答える 2

2

よし、ここだ

$voted = new DateTime($time);
$daylater = date('Y-m-d H:i:s', strtotime('+1 day', $voted->format('U')));
$canvote = new DateTime($daylater);
$now = new DateTime(date("Y-m-d H:i:s"));

$diff = $canvote->format('U') - $now->format('U'); 

if ( $diff > 0 && $diff < 86400 ) {
    $left = gmdate("H:i:s", $diff);
    echo $left . ' left till you can vote again';
} else {
    echo 'You can vote again' ;
}

それが機能するかどうか教えてください

于 2012-11-19T10:40:02.633 に答える
0

直接strtotime()変換するために使用することはできませんか? $voteCheck[1]その後、現在のタイム スタンプに対して UNIX タイム スタンプを確認できます。

于 2012-11-19T10:24:10.360 に答える