2012-04-11 56 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")); 

或者我怎样才能使它工作?

+0

格式化由于UNIX时间戳有一个决议1秒,那不可能工作。 – deceze 2012-04-12 00:15:30

回答

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

Unix时间戳的分辨率(这是time()返回的值)仅为1秒。所以你不能给它增加一半的时间。

2

time()返回自纪元以来的数量。它几乎不知道什么。你需要使用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)); 

根据您的要求,您可能更愿意使用比圆形不同的功能(),使$ NEWTIME和整数再适合与日期()

+0

这是错误的..删除或更正它...'日期('YMD H:我:S',microtime());'是不是一个有效的格式http://codepad.viper-7.com/Hc4qfE – Baba 2012-04-12 00:27:41

+0

我没有想到它会以这种方式使用。已经修改我的答案是更清楚 – 2012-04-12 00:43:56

+0

这仍然不是一个有效的方式来添加0.5秒....您的代码将它舍入到1秒 – Baba 2012-04-12 00:46:24