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 相关文章推荐
Discuz板块横排显示图片的实现方法
May 28 PHP
Discuz Uchome ajaxpost小技巧
Jan 04 PHP
php的array数组和使用实例简明教程(容易理解)
Mar 20 PHP
php中的静态变量的基本用法
Mar 20 PHP
php实现的发送带附件邮件类实例
Sep 22 PHP
Yii框架调试心得--在页面输出执行sql语句
Dec 25 PHP
php 5.6版本中编写一个PHP扩展的简单示例
Jan 20 PHP
详解PHP匿名函数与注意事项
Mar 29 PHP
PHP查询分页的实现代码
Jun 09 PHP
php分享朋友圈的实现代码
Feb 18 PHP
PHP多进程通信-消息队列使用
Mar 08 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
Apr 04 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编写PDF文档生成器
2006/10/09 PHP
[转帖]PHP世纪万年历
2006/12/06 PHP
PHP5 面向对象程序设计
2008/02/13 PHP
PHP+FastCGI+Nginx配置PHP运行环境
2014/08/07 PHP
PHP闭包实例解析
2014/09/08 PHP
PHP的消息通信机制测试实例
2016/11/10 PHP
JS控制阿拉伯数字转为中文大写示例代码
2013/09/04 Javascript
一个JavaScript处理textarea中的字符成每一行实例
2014/09/22 Javascript
js查找节点的方法小结
2015/01/13 Javascript
JS 全屏和退出全屏详解及实例代码
2016/11/07 Javascript
tablesorter.js表格排序使用方法(支持中文排序)
2017/02/10 Javascript
微信小程序 跳转传参数与传对象详解及实例代码
2017/03/14 Javascript
Node.js readline模块与util模块的使用
2018/03/01 Javascript
基于Angularjs-router动态改变Title值的问题
2018/08/30 Javascript
JS通用方法触发点击事件代码实例
2020/02/17 Javascript
封装 axios+promise通用请求函数操作
2020/08/11 Javascript
javascript实现简易计算器功能
2020/09/23 Javascript
python基础教程之序列详解
2014/08/29 Python
Python中的条件判断语句基础学习教程
2016/02/07 Python
Python内置函数delattr的具体用法
2017/11/23 Python
Python实现的逻辑回归算法示例【附测试csv文件下载】
2018/12/28 Python
python数据类型之间怎么转换技巧分享
2019/08/20 Python
python 多维高斯分布数据生成方式
2019/12/09 Python
python实现滑雪者小游戏
2020/02/22 Python
中专毕业生自荐信范文
2013/11/28 职场文书
寄语十八大感言
2014/02/07 职场文书
数学教研活动总结
2014/07/02 职场文书
夏季药店促销方案
2014/08/22 职场文书
连锁超市项目计划书
2014/09/15 职场文书
老公给老婆的检讨书(精华篇)
2014/10/18 职场文书
高校教师个人总结
2015/02/10 职场文书
督导岗位职责范本
2015/04/10 职场文书
学校党支部公开承诺书
2015/04/30 职场文书
市级三好生竞选稿
2015/11/21 职场文书
Vue如何实现组件间通信
2021/05/15 Vue.js