资讯专栏INFORMATION COLUMN

PHP 的 DateTime 类详解

Object / 709人阅读

摘要:导语类虽然早就有所了解,但在实际中很少使用,更多的还是用等。类是后新增的处理时间格式类,可以输出转换计算时间,很好的替代了等函数。

导语

DateTime 类虽然早就有所了解,但在实际中很少使用,更多的还是用 date()、time()、strtotime() 等。DateTime 类是 PHP 5.2后新增的处理时间格式类,可以输出、转换、计算时间,很好的替代了 date() 等函数。下面整理记录下。

实例

输出时间

format("Y-m-d H:i:s");
echo $date->format("Y-m-d");
echo $date->getTimestamp();// 时间戳
$timezone = $data->getTimezone();
echo $timezone->getName();// Asia/Shanghai

自定义时间

format("Y-m-d H:i:s");// 2018-01-01 00:00:00

$date1 = new DateTime;
$date1->setTimestamp("1514739661");
echo $date1->format("Y-m-d H:i:s");// 2018-01-01 01:01:01

$date2 = new DateTime("tomorrow");
echo $date2->format("Y-m-d");// 2018-03-14

$date3 = new DateTime("+2 day");
echo $date3->format("Y-m-d");// 2018-03-15

编辑时间

setDate(2020, 8, 8);
echo $date->format("Y-m-d H:i:s");// 2020-08-08 20:03:54

$date1 = new DateTime;
$date1->setTime(2, 3, 4);
echo $date1->format("Y-m-d H:i:s");// 2018-03-13 02:03:04

$date3 = new DateTime;
$date3->modify("+1 day");
echo $date3->format("Y-m-d H:i:s");// 2018-03-14 20:08:25
$date3->modify("+20 day");
echo $date3->format("Y-m-d H:i:s");// 2018-04-03 20:10:07
$date3->modify("+1 month");
echo $date3->format("Y-m-d H:i:s");// 2018-05-03 20:10:17
$date3->modify("-1 year");
echo $date3->format("Y-m-d H:i:s");// 2017-05-03 20:12:17

$data4 = new DateTime;
$temp = $data4->setISODate(2018, 3, 2);
echo $temp->format("Y-m-d");// 2018-01-16

计算时间

 $date1 ? 1 : 2);// 1

print_r($date->diff($date1));// DateInterval Object ( [y] => 2 [m] => 2 [d] => 12 [h] => 16 [i] => 52 [s] => 50 [weekday] => 0 [weekday_behavior] => 0 [first_last_day_of] => 0 [invert] => 1 [days] => 802 [special_type] => 0 [special_amount] => 0 [have_weekday_relative] => 0 [have_special_relative] => 0 )

// 格式化输出
$diff = $date->diff($date1);
echo $diff->format("相差 %Y 年 %m 月  %d 天");// 相差 02 年 2 月 12 天

参考资料:PHP 手册、 php 自带datetime类的使用、PHP中的DateTime类。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/29956.html

相关文章

  • Python标准库datetimedatetime模块用法分析详细解答

      小编写这篇文章的主要目的,主要是给大家进行讲解关于Python相关内容的事情,主要是涉及到一些标准库里面的一些事情,比如会涉及到dateime相关的模块用法问题,下面就给大家做个比较详细解答。  1、日期时间对象  日期时间对象是指具有日期(年月日)和时间(时分秒)双重属性的实例  日期时间对象的类型为datetime.datetime  日期时间对象常用的属性有年、月、日、时、分、秒、微秒 ...

    89542767 评论0 收藏0
  • php 自带datetime使用

    摘要:有效周期标识符如下年月日周时分秒间隔约定中既可以有时间也可以有日期,如果有时间需要在日期和时间之间加上字母,例如,间隔约定表示间隔两天,间隔约定表示间隔两天五小时两分钟。 前言 以前更改时间格式的时候经常使用date方法,后来知道php竟然自带datetime类处理时间格式,记录一下用法,方便以后使用 实例化 在yii 1.1中,可以直接写成 $datetime = new DateT...

    andot 评论0 收藏0
  • 保存数据到MySql数据库——我用scrapy写爬虫(二)

    摘要:坦克大战上简介上的坦克大战相信大家都玩过有逃学玩坦克的可以自己默默的扣一个了我们现在长大了,学习游戏开发了。 写在前面 上一篇(https://www.tech1024.cn/origi... )说了如何创建项目,并爬去网站内容,下面我们说一下如何保存爬去到的数据 开始爬取 创建Spider,上一篇我们已经创建了ImoocSpider,我们做一下修改,可以连续下一页爬取。scrapyD...

    Kross 评论0 收藏0
  • PHP DateTime计算早于改历时间

    摘要:并且在实际使用中,早于改历之前的时间并没用格里历表式的习惯,都是换成儒略历表达,所以类这样的设计,等于说早于改历的时间基本不能用的,还是得自己另外处理一遍。 时间戳只能计算 1970 年后的时间,由于需要计算更早的日期,发现 PHP 还有提供一个 DateTime类,但在使用中发现有问题。 1582年,因为旧历精度问题,导致已经积累了十天的偏差,,所以此年10月5号~10月14号跳过,...

    李世赞 评论0 收藏0

发表评论

0条评论

Object

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<