2012-04-11 18 views
0

なぜ$ now2は機能しませんか?php時間を追加

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

どのように動作させることができますか? PHP0.5 secsが有効

0.5 secsを持って認識しないので、そのは今働い理由がある

+0

でフォーマットするための$ NEWTIMEと整数が再び適したものにするために、ラウンドとは異なる機能を()を使用することを好むこといずれにしてもうまくいかなかった1秒間。 – deceze

答えて

2

は有効な日付形式ではありません..しかし、それは、有効なmicrotime

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

出力を試してみてくださいです

int 1334188908 
1

Unixタイムスタンプの解像度(これはtime()が返すものです)はわずか1秒です。だから、半分の時間を追加することはできません。

2

time()は、時代から秒のの数を返します。 1秒の数分は何も知らない。このレベルの精度が必要な場合はmicrotime()を使用する必要があります(http://php.net/manual/en/function.microtime.phpを参照)

編集:date()フォーマットでmicrotimeを使用することはできませんので、あらかじめ計算を行う必要がありますそれを使用してください。同様に:

$now = microtime(true); 
$newtime = $now + 0.5; 

echo date("Y-m-d H:i:s", round($newtime,0)); 

あなたの要件に応じて、UNIXタイムスタンプは、解像度を持っているので、日付()

+0

これは間違っています...それを削除または修正してください... 'date( 'Ymd H:i:s'、microtime());'は有効な形式ではありませんhttp://codepad.viper-7.com/Hc4qfE – Baba

+0

私はそれがそのように使用されるとは思わなかった。 –

+0

これはまだ0.5秒を追加する有効な方法ではありません....あなたのコードは1秒に丸めます – Baba

関連する問題