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 相关文章推荐
如何将数据从文本导入到mysql
Oct 09 PHP
PHP下一个非常全面获取图象信息的函数
Nov 20 PHP
深入PHP许愿墙模块功能分析
Jun 25 PHP
php中的Base62类(适用于数值转字符串)
Aug 12 PHP
destoon之一键登录设置
Jun 21 PHP
php实现根据IP地址获取其所在省市的方法
Apr 30 PHP
php中JSON的使用方法
Apr 30 PHP
PHP生成器简单实例
May 13 PHP
php防止CC攻击代码 php防止网页频繁刷新
Dec 21 PHP
[原创]php token使用与验证示例【测试可用】
Aug 30 PHP
laravel框架如何设置公共头和公共尾
Oct 22 PHP
php的instanceof和判断闭包Closure操作示例
Jan 26 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实现让页面只能被百度gogole蜘蛛访问的方法
2009/12/29 PHP
php Static关键字实用方法
2010/06/04 PHP
php购物车实现代码
2011/10/10 PHP
为Plesk PHP7启用Oracle OCI8扩展方法总结
2019/03/29 PHP
JavaScript让IE浏览器event对象符合W3C DOM标准
2009/11/24 Javascript
Jquery从头学起第四讲 jquery入门教程
2010/08/01 Javascript
css+js实现部分区域高亮可编辑遮罩层
2014/03/04 Javascript
使用js操作css实现js改变背景图片示例
2014/03/10 Javascript
让IE8浏览器支持function.bind()方法
2014/10/16 Javascript
jquery插件NProgress.js制作网页加载进度条
2015/06/05 Javascript
PageSwitch插件实现100种不同图片切换效果
2015/07/28 Javascript
Jquery实现弹性滑块滑动选择数值插件
2015/08/08 Javascript
javascript中的深复制详解及实例分析
2016/12/29 Javascript
bootstrap Table实现合并相同行
2019/07/19 Javascript
Vue循环中多个input绑定指定v-model实例
2020/08/31 Javascript
Python 常用 PEP8 编码规范详解
2017/01/22 Python
Python 通过URL打开图片实例详解
2017/06/01 Python
Python使用flask框架操作sqlite3的两种方式
2018/01/31 Python
对Python3中的print函数以及与python2的对比分析
2018/05/02 Python
python判断字符串或者集合是否为空的实例
2019/01/23 Python
Python数据可视化:幂律分布实例详解
2019/12/07 Python
python 装饰器的使用示例
2020/10/10 Python
利用CSS3的定位页面元素
2009/08/29 HTML / CSS
简约控的天堂:The Undone
2016/12/21 全球购物
strstr()的简单实现
2013/09/26 面试题
一套带网友答案的.NET笔试题
2016/12/06 面试题
外语专业毕业生个人的自荐信
2013/11/19 职场文书
培训讲师邀请函
2014/01/10 职场文书
旷课检讨书1000字
2014/02/14 职场文书
企业读书活动总结
2014/06/30 职场文书
商业用房租赁协议书
2014/10/13 职场文书
成本会计实训报告
2014/11/05 职场文书
2014年党小组工作总结
2014/12/20 职场文书
实习报告范文
2019/07/30 职场文书
深入探讨opencv图像矫正算法实战
2021/05/21 Python
CKAD认证中部署k8s并配置Calico插件
2022/03/31 Servers