PHP时间处理类操作示例


Posted in PHP onSeptember 05, 2018

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

PHP 相关文章推荐
wordpress之wp-settings.php
Aug 17 PHP
一步一步学习PHP(1) php开发环境配置
Feb 15 PHP
php 变量未定义等错误的解决方法
Jan 12 PHP
php更新mysql后获取影响的行数发生异常解决方法
Mar 28 PHP
php fsockopen伪造post与get方法的详解
Jun 14 PHP
PHP生成唯一订单号
Jul 05 PHP
PHP中empty和isset对于参数结构的判断及empty()和isset()的区别
Nov 15 PHP
关于PHP转换超过2038年日期出错的问题解决
Jun 28 PHP
php实现支持中文的文件下载功能示例
Aug 30 PHP
提高Laravel应用性能方法详解
Jun 24 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
Feb 21 PHP
如何在Mac上通过docker配置PHP开发环境
May 29 PHP
PHP命名空间与自动加载类详解
Sep 04 #PHP
ThinkPHP框架实现定时执行任务的两种方法分析
Sep 04 #PHP
php 后端实现JWT认证方法示例
Sep 04 #PHP
PHP利用Mysql锁解决高并发的方法
Sep 04 #PHP
TP5(thinkPHP5)框架基于ajax与后台数据交互操作简单示例
Sep 03 #PHP
PHP实现的AES双向加密解密功能示例【128位】
Sep 03 #PHP
PHP实现的日历功能示例
Sep 01 #PHP
You might like
PHP 上传文件的方法(类)
2009/07/30 PHP
PHP中文件缓存转内存缓存的方法
2011/12/06 PHP
PHP生成短网址的3种方法代码实例
2014/07/08 PHP
PHP身份证校验码计算方法
2016/08/10 PHP
PHP设计模式之PHP迭代器模式讲解
2019/03/22 PHP
音乐播放用的的几个函数
2006/09/07 Javascript
JS 日期验证正则附asp日期格式化函数
2009/09/11 Javascript
js实现的常用的左侧导航效果
2013/10/17 Javascript
使用CSS样式position:fixed水平滚动的方法
2014/02/19 Javascript
jQuery修改CSS伪元素属性的方法
2014/07/30 Javascript
node.js中的events.emitter.once方法使用说明
2014/12/10 Javascript
jQuery焦点图插件SaySlide
2015/12/21 Javascript
nodejs入门教程一:概念与用法简介
2017/04/24 NodeJs
Javascript创建类和对象详解
2017/05/31 Javascript
setTimeout时间设置为0详细解析
2018/03/13 Javascript
js继承的这6种方式!(上)
2019/04/23 Javascript
Vue.js watch监视属性知识点总结
2019/11/11 Javascript
在博客园博文中添加自定义右键菜单的方法详解
2020/02/05 Javascript
在vue中实现禁止回退上一步,路由不存历史记录
2020/07/22 Javascript
js+canvas绘制图形验证码
2020/09/21 Javascript
神经网络python源码分享
2017/12/15 Python
Linux下python3.7.0安装教程
2018/07/30 Python
解决django同步数据库的时候app models表没有成功创建的问题
2019/08/09 Python
python socket通信编程实现文件上传代码实例
2019/12/14 Python
Django自定义列表 models字段显示方式
2020/04/03 Python
如何通过python检查文件是否被占用
2020/12/18 Python
使用CSS3实现一个3D相册效果实例
2016/12/03 HTML / CSS
CSS3 Flex 弹性布局实例代码详解
2018/11/01 HTML / CSS
HTC VIVE美国官网:VR虚拟现实眼镜
2018/02/13 全球购物
教师研修随笔感言
2014/01/23 职场文书
40岁生日感言
2014/02/15 职场文书
2014年妇幼保健工作总结
2014/12/08 职场文书
2014年客服工作总结与计划
2014/12/09 职场文书
5.12护士节活动总结
2015/02/10 职场文书
通知函格式范文
2015/04/27 职场文书
MySQL完整性约束的定义与实例教程
2021/05/30 MySQL