为什么 $now2 不起作用?
$now = date('Y-m-d H:i:s', time());
$now2 = date("Y-m-d H:i:s", strtotime( "$now + 0.5 secs"));
或者我怎样才能让它工作?
它现在工作的原因是因为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
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) );
根据您的要求,您可能更喜欢使用与 round() 不同的函数来使 $newtime 和 integer 再次适合使用 date() 进行格式化
Unix 时间戳(即time()
返回)的分辨率仅为 1 秒。所以你不能增加半秒。