欢迎光临!中国网页设计提供最新的免费网页制作教程,网页设计技术,HTML5+DIV3...中国站长必上的网站。
加入收藏设为首页广告合作
您当前位置:网站首页 >> 网络编程 >> PHP编程 >> 3个简单实用的php日期计算函数(登陆天数和在线时间)
  • Asp编程
  • PHP编程
  • .Net编程
  • jsp编程
  • android 开发
  • Access
  • Mysql
  • Mssql
  • Oracle
  • 3个简单实用的php日期计算函数(登陆天数和在线时间)

    来源:互联网 浏览:2654

    内容提要:文章分享了3个PHP日期计算函数,非常简单实用,可以
    计算到指定日期还有多少天,两个日期相差多少天,两个日期相差 年、月、日……

    在PHP程序中,很多时候都会遇到处理时间的问题,比如:判断用户在线了多长时间,共登录了多少天,两个帖子发布的时间差或者是不同操作之间的日志记录等等。

    网站会员登陆界面一般也会有在线时长和已登陆天数,多长时间没有登陆等信息。

    本文分享3个PHP日期计算函数,非常简单实用。

    一、php计算到指定日期还有多少天?

    function countdays($d)
    {
     $olddate = substr($d, 4);
     $newdate = date(Y) ."".$olddate;
     $nextyear = date(Y)+1 ."".$olddate;
      if($newdate > date("Y-m-d"))
      {
      $start_ts = strtotime($newdate);
      $end_ts = strtotime(date("Y-m-d"));
      $diff = $end_ts - $start_ts;
      $n = round($diff / 86400);
      $return = substr($n, 1);
      return $return;
      }
      else
      {
      $start_ts = strtotime($nextyear);
      $end_ts = strtotime(date("Y-m-d"));
      $diff = $end_ts - $start_ts;
      $n = round($diff / 86400);
      $return = substr($n, 1);
      return $return;
      }
    }

    二、php计算两个日期相差多少天

    function diffBetweenTwoDays ($day1, $day2)
    {
      $second1 = strtotime($day1);
      $second2 = strtotime($day2);
       
      if ($second1 < $second2) {
        $tmp = $second2;
        $second2 = $second1;
        $second1 = $tmp;
      }
      return ($second1 - $second2) / 86400;
    }
    $day1 = "2014-10-27";
    $day2 = "2015-08-04";
    $diff = diffBetweenTwoDays($day1, $day2);
    echo $diff."\n";

    三、php计算两个日期时间差

    实现了类似微博中的多少天、多少月、多少年功能。

    <?php 
      function DiffDate($date1, $date2) {
      if (strtotime($date1) > strtotime($date2)) {
        $ymd = $date2;
        $date2 = $date1;
        $date1 = $ymd;
      }
      list($y1, $m1, $d1) = explode('-', $date1);
      list($y2, $m2, $d2) = explode('-', $date2);
      $y = $m = $d = $_m = 0;
      $math = ($y2 - $y1) * 12 + $m2 - $m1;
      $y = round($math / 12);
      $m = intval($math % 12);
      $d = (mktime(0, 0, 0, $m2, $d2, $y2) - mktime(0, 0, 0, $m2, $d1, $y2)) / 86400;
      if ($d < 0) {
        $m -= 1;
        $d += date('j', mktime(0, 0, 0, $m2, 0, $y2));
      }
      $m < 0 && $y -= 1;
      return array($y, $m, $d);
    }
    ?>

    发表评论 共有0人对本文发表评论
    网名:
    评论:
    验证:
    (网友评论仅供表达个人看法,并不表明本站同意其观点或证实其描述)
    联系我们 - 网站调查 - 免责声明 - 站长简介 - 站点综合查询 - 课件习题 - 友情链接 - 站长统计