strtotime减法不起作用

时间:2015-09-15 20:12:38

标签: php

我有这个PHP代码:

echo "time30: ".$time30.'<br />';

echo "time: ".$time.'<br />';

echo date("s",strtotime($time) - strtotime($time30));

返回:

time30: 15/09/2015 20:27:16
time: 15/09/2015 21:08:41
00

为什么不返回差异而不是00?!

2 个答案:

答案 0 :(得分:2)

减去2个时间戳并不能为您提供时间戳。它可以获得它们之间的差异。然后,您尝试将该差异读取为时间戳(或完全时刻),并且恰好具有“{秒”值0

如果你想要这两次的数量,那么你只需要这样做:

echo strtotime($time) - strtotime($time30);

P.S。 15/09/2015 20:27:16不是strtotime识别的格式。我建议您使用DateTime个对象来完成此任务。

$time = DateTime::createFromFormat('d/m/Y H:i:s', '15/09/2015 21:08:41');
$time30 = DateTime::createFromFormat('d/m/Y H:i:s', '15/09/2015 20:27:16');

$diff = $time->diff($time30);

$minutes = ($diff->days*24*60) + ($diff->h*60) + ($diff->i);
$seconds = ($minutes*60) + $diff->s;

echo $seconds;  // 2485 (which is 41 minutes, 25 seconds)

答案 1 :(得分:1)

而不是使用

$time30= '15/09/2015 20:27:16';
$time= '15/09/2015 21:08:41';

使用

$time30= '2015-09-15 20:27:16';
$time= '2015-09-15 21:08:41';

格式必须正确http://php.net/manual/en/function.strtotime.php