0

$now2 が機能しないのはなぜですか?

$now = date('Y-m-d H:i:s', time()); 
$now2 = date("Y-m-d H:i:s", strtotime( "$now + 0.5 secs"));

または、どうすれば機能させることができますか?

4

3 に答える 3

2

現在機能している理由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
于 2012-04-12T00:03:43.753 に答える
2

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() でのフォーマットに再び適したものにすることを好む場合があります。

于 2012-04-12T00:15:48.837 に答える
1

Unix タイムスタンプ (time()返されるもの) の解像度はわずか 1 秒です。したがって、0.5 秒を追加することはできません。

于 2012-04-12T00:15:01.930 に答える