php添加时间

时间:2012-04-11 23:59:16

标签: php time

为什么$ now2不起作用?

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

或者我怎样才能让它发挥作用?

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

time()返回自纪元以来的数量。它对一秒钟的分数一无所知。如果您需要这种准确度,则需要使用microtime()(参见:http://php.net/manual/en/function.microtime.php

编辑:您当然不能在日期()格式中使用microtime,因此您需要先进行计算然后再使用它。类似于:

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

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

根据您的要求,您可能更喜欢使用与round()不同的函数来使$ newtime和integer再次适合格式化为date()

答案 2 :(得分:1)

Unix时间戳(即time()返回的)的分辨率仅为1秒。所以你不能加半秒钟。