加入收藏 | 设为首页 | 会员中心 | 我要投稿 菏泽站长网 (https://www.0530zz.cn/)- 数据工坊、负载均衡、数据快递、云计算、事件网格!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP时间处理类操作示例

发布时间:2022-06-20 09:07:44 所属栏目:PHP教程 来源:互联网
导读:这篇文章主要介绍了PHP时间处理类,结合实例形式分析了DateTime、DateTimeZone、DateInterval及DatePeriod等常用日期时间处理类简单操作技巧,需要的朋友可以参考下。 本文实例讲述了PHP时间处理类操作。分享给大家供大家参考,具体如下: php中的几个时间处理
  这篇文章主要介绍了PHP时间处理类,结合实例形式分析了DateTime、DateTimeZone、DateInterval及DatePeriod等常用日期时间处理类简单操作技巧,需要的朋友可以参考下。
 
  本文实例讲述了PHP时间处理类操作。分享给大家供大家参考,具体如下:
 
  php中的几个时间处理类:DateTime,DateTimeZone,DateInterval,DatePeriod。
 
  DateTime :时间类
 
  DateTimeZone:时区内
 
  DateInterval:表示一段时间间隔,它是时间对象做加减法的单位。
 
  DatePeriod:表示一段时间集合。结合DateInterval可对集合内的时间遍历处理。
 
  下面是这几个类的具体使用例子:
 
  <?php
  function showTimeObj($msg,$timeObj)
  {
    //使用预定义的格式来转换时间字符串
    if ($msg!=NULL)
    {
      echo $msg.":";
      echo "<br>".$timeObj->format(DATE_W3C)."<br>";
    }
    else
    {
      echo $timeObj->format(DATE_ATOM)."<br>";
    }
  }
  try
  {
    //设置时区
    $timezones = new DateTimeZone('Asia/Shanghai');
    //获取当前时间
    $timeObj=new DateTime("now",$timezones);
  }
  catch (Exception $e)
  {
    echo $e->getMessage();
  }
  //输出的+08:00代表东八区、若把时区设为'Asia/Tokyo',则为+09:00
  showTimeObj('current time',$timeObj);
  echo "<br>"."<br>";
  echo "use DateInterval object to add date time".":"."<br>";
  //加上一天(P=period,必备)
  $timeObj->add(new DateInterval('P1D'));
  showTimeObj('current time + 1 day',$timeObj);
  //加上一小时(T=time,可选)
  $timeObj->add(new DateInterval('P0DT1H'));
  showTimeObj('current time + 1 day & 1hour',$timeObj);
  echo "<br>"."<br>";
  echo "use DatePeriod to process time range like a iterator".":"."<br>";
  //DatePeriod: 迭代处理区间内的日期
  $interval= new DateInterval('P0DT2H');
  $start = new DateTime('2018-08-08',$timezones);
  $end = new DateTime('2018-08-09',$timezones);
  $timeRange = new DatePeriod($start,$interval,$end);
  foreach ($timeRange as $hour)
  {
    showTimeObj(NULL,$hour);
  }
  ?>
  上述代码运行结果:
 
  current time:
   
  2018-09-04T15:23:46+08:00
   
   
   
  use DateInterval object to add date time:
  current time + 1 day:
  2018-09-05T15:23:46+08:00
  current time + 1 day & 1hour:
  2018-09-05T16:23:46+08:00
   
   
  use DatePeriod to process time range like a iterator:
  2018-08-08T00:00:00+08:00
  2018-08-08T02:00:00+08:00
  2018-08-08T04:00:00+08:00
  2018-08-08T06:00:00+08:00
  2018-08-08T08:00:00+08:00
  2018-08-08T10:00:00+08:00
  2018-08-08T12:00:00+08:00
  2018-08-08T14:00:00+08:00
  2018-08-08T16:00:00+08:00
  2018-08-08T18:00:00+08:00
  2018-08-08T20:00:00+08:00
  2018-08-08T22:00:00+08:00

(编辑:菏泽站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读