使用PHP 5.2计算2个时间戳之间的月份数

时间:2012-05-16 20:15:01

标签: php datetime timestamp

  

可能重复:
  Find Month difference in php?

我的服务器托管了多个网站,而且我使用的一些图书馆,升级到php 5.3将非常困难。我打算在不久的将来这样做,但目前不行。

我有两个时间戳,我想计算它们之间有多少个月。 PHP 5.3有datetime.diff函数,但由于我在5.2,我目前无法使用它。

我有哪些替代方案?我知道我可以通过减去时间戳来获取秒数,然后通过假设每个月有30天获得月份,但我需要准确的结果。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

就个人而言,我选择这种方法:

$from = explode("-",date("Y-m-d",$fromStamp));
$to = explode("-",date("Y-m-d",$toStamp));
$months = ($to[0]-$from[0])*12+$to[1]-$from[1];
if( $to[1] == $from[1] && $to[2] > $from[2]) $months--; // incomplete month
if( $to[1] == ($from[1]+1)%12 && $to[2] < $from[2]) $months--; // other side
// result in $months