3

タイムスタンプの有効期限を作成してテストする方法を学ぼうとしています。有効期限が切れたタイムスタンプをテストしようとして、簡単な例を設定しましたが、正しく機能していないようです。適切な時期に?

<?php

echo'
<html>
<head>
</head>
<body>';

//set static current time
$timestamp = 1340037073;

if($timestamp <= strtotime("+10 minutes", $timestamp)){
    echo "Valid";
}else{
    echo "Expired";
}


echo'
</body>
</html>';




?>
4

3 に答える 3

3

現在の時刻はtime()関数で取得されるため$timestamp、データベースなどの外部ソースから取得した時刻を含めて、現在の時刻と照合して有効期限が切れているかどうかを確認する必要があります。

//test timestamp
$timestamp = 1340037073;

//check if it has expired (600 = 60*10 seconds = 10 minutes)
if ((time() - $timestamp) < 600)
{
  echo 'valid';
}
else
{
  echo 'expired';
}

それがあなたのために働くことを願っています:)

于 2012-06-18T16:52:14.340 に答える
1

あなたが持っているものは常に有効です。このことを考慮:

$i = 0;

if ($i <= ($i+1)) {
  // always truthy, because 1 is greater than 0
}

だからあなたはそれを切り替える必要があります:

$timestamp = 1340037073;

if(strtotime("+10 minutes", $timestamp) <= $timestamp){
    echo "Valid";
} else {
    echo "Expired";
}

また、DateTimeを使い始めてみませんか?

于 2012-06-18T16:51:13.577 に答える