为什么$ now2不起作用?
$now = date('Y-m-d H:i:s', time());
$now2 = date("Y-m-d H:i:s", strtotime( "$now + 0.5 secs"));
或者我怎样才能让它发挥作用?
答案 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秒。所以你不能加半秒钟。