TypeCodes

PHP获取两个时间相差的年数、月数和天数

今天在查看博客的统计栏时,发现那个“安全运行”的时间只显示了当前时间距离博客的建立时间相差的天数。这样看起来不怎么舒服:要是再过几年后,运行了七八百天,那是不是用户还得估算一下是几年了啊。因此,vfhky觉得还是把具体相差的年月日都写出来,这样才符合用户体验。

那么,如何获取两个不同时间相差几年几月几日呢?比如当前时间距离2008年08月08日的北京奥运会有几年几月几日了?晚上琢磨了下,实现效果如下图所示(也可以点击右侧栏的“博客统计”栏目查看效果)。

PHP获取两个时间相差的年数、月数和天数

代码如下,需要说明的是:1、定义一年为360天,一个月为30天;2、代码中86400=24*60*60,代表一天中共有多少秒;3、这两个时间都要规范的写成类似2013-07-28的形式;4、推广到所有的PHP程序,可以把Get_option('swt_builddate')这个wordpress获取后台数据的参数改成需要比较的时间参数。

1
2
3
4
5
6
7
8
9
<?php
  //Get detail gap of year,month and days between two different time by vfhky 20130728
  $common = (time()-strtotime(get_option('swt_builddate')));
  $a = floor($common/86400/360);    //整数年
  $b = floor($common/86400/30) - $a*12; //整数月
  $c = floor($common/86400) - $a*360 - $b*30;   //整数日
  $d = floor($common/86400);    //总的天数
  echo $a."年".$b."月".$c."日(共计".$d."天)";
?>
打赏支持

Comments »