欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

PHP时间处理类操作示例

程序员文章站 2023-02-16 11:43:46
本文实例讲述了php时间处理类操作。分享给大家供大家参考,具体如下: php中的几个时间处理类:datetime,datetimezone,dateinterval,da...

本文实例讲述了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

ps:这里再为大家推荐几款时间及日期相关工具供大家参考:

在线日期/天数计算器:

在线日期计算器/相差天数计算器:

在线日期天数差计算器:

unix时间戳(timestamp)转换工具:

更多关于php相关内容感兴趣的读者可查看本站专题:《php日期与时间用法总结》、《php数组(array)操作技巧大全》、《php基本语法入门教程》、《php运算与运算符用法总结》、《php面向对象程序设计入门教程》及《php字符串(string)用法总结

希望本文所述对大家php程序设计有所帮助。