php`strtotime`变量没有返回负数?

时间:2012-02-29 23:48:35

标签: php date strtotime

希望以两个日期之间的天数形式形成变量。

$dayDiff = round((strtotime('2012-02-18') - strtotime('2012-02-22')) / 86400);

以上显示“-4”是正确的!

$newDate= date('Y-m-d', strtotime($dayDiff . " day"));

以上将$dayDiff视为正数并吐出'2012-02-25',而不是'2012-02-14'的预期结果。有什么想法吗?

2 个答案:

答案 0 :(得分:4)

这将输出:

$dayDiff = round((strtotime('2012-02-18') - strtotime('2012-02-22')) / 86400);
echo $newDate= date('Y-m-d', strtotime($dayDiff . " day", strtotime('2012-02-18')));

或:

$firstDate = strtotime('2012-02-18');
$dayDiff = round(($firstDate - strtotime('2012-02-22')) / 86400);
echo $newDate= date('Y-m-d', strtotime($dayDiff . " day", $firstDate));

strtotime将从当前时间戳开始,而不是从第18个开始,这就是为什么如果输出:echo date('Y-m-d', strtotime('now'));它将输出今天的日期,echo date('Y-m-d', strtotime('now - 4 days')); 25和{{ 1}}第18天-4天将输出14。

关于strtotime的更多信息:http://php.net/manual/en/function.strtotime.php

答案 1 :(得分:0)