$now2 が機能しないのはなぜですか?
$now = date('Y-m-d H:i:s', time());
$now2 = date("Y-m-d H:i:s", strtotime( "$now + 0.5 secs"));
または、どうすれば機能させることができますか?
現在機能している理由PHP
は、認識されていないため0.5 secs
です
0.5 secs
は有効な日付形式ではありませんが、有効ですmicrotime
試す
$now = date('Y-m-d H:i:s', time());
var_dump(strtotime( "$now + 1 secs"));
出力
int 1334188908
time() はエポックからの秒数を返します。ほんの一瞬のことは何も知りません。このレベルの精度が必要な場合は、microtime() を使用する必要があります (参照: http://php.net/manual/en/function.microtime.php ) 。
編集: もちろん、date() 形式でマイクロタイムを使用することはできないため、事前に計算を行ってから使用する必要があります。に似ている:
$now = microtime(true);
$newtime = $now + 0.5;
echo date("Y-m-d H:i:s", round($newtime,0) );
要件によっては、round() とは異なる関数を使用して、$newtime と整数を date() でのフォーマットに再び適したものにすることを好む場合があります。
Unix タイムスタンプ (time()
返されるもの) の解像度はわずか 1 秒です。したがって、0.5 秒を追加することはできません。