zoukankan      html  css  js  c++  java
  • PHP DateTime类常用方法总结

    实例化:

    $date = new DateTime();
    $date = new DateTime('2018-01-01');
    $date = new DateTime('tomorrow');
    $date = new DateTime('+2 day');
    $date = new DateTime('1408950651');
    

    设置日期时间:

    $date->setTimestamp('1514739661');
    $date->setDate(2020, 8, 8);
    $date->setTime(2, 3, 4);
    $date->modify('+1 day');
    $date->modify('+1 month');
    $date->modify('-1 year');
    $date->add(new DateInterval('P2DT5H2M'));
    $date->sub(new DateInterval('P2DT5H2M'));
    $date->setTimezone(new DateTimeZone('Asia/Shanghai'));
    

    有效标识符如下: Y(年) M(月) D(日) W(周) H(时) M(分) S(秒)

    约定以字母P开头,如果有时间,需要在时间之前加入T。

    $interval->invert = 1; // 指定为负数。

    格式化及取值:

    $date->format('Y-m-d H:i:s');  // 格式化输出
    $date->getTimestamp();  // 获取时间戳
    $data->getTimezone()->getName();  // 获取时区Asia/Shanghai
    

    比较日期:

    $date = new DateTime;
    $date1 = new DateTime('2016-01-01');
    print_r($date > $date1 ? true : false);
    
    print_r($date->diff($date1));
    // DateInterval Object ( [y] => 2 [m] => 2 [d] => 12 [h] => 16 [i] => 52 [s] => 50 [days] => 802 )
    
    // 格式化输出
    $diff = $date->diff($date1);
    echo $diff->format("相差 %Y 年 %m 月  %d 天");
    // 相差 02 年 2 月 12 天
    

    输出区间内的日期时间:

    <?php
    $start = new DateTime("2020-12-01");
    $end = new DateTime("2020-12-31");
    $recurrences = 4;
    $interval = new DateInterval('P7D');
    
    // 方式一
    $period = new DatePeriod($start, $interval, $recurrences, DatePeriod::EXCLUDE_START_DATE);
    foreach ($period as $v) {
        echo $v->format("Y-m-d") . PHP_EOL;
    }
    
    // 方式二
    $period = new DatePeriod($start, $interval, $end, DatePeriod::EXCLUDE_START_DATE);
    foreach ($period as $v) {
        echo $v->format("Y-m-d") . PHP_EOL;
    }
    

    参考:https://www.php.net/manual/zh/class.datetime.php

  • 相关阅读:
    [C语言嵌入式系统编程修炼] 软件架构与内存操作篇
    [C陷阱和缺陷] 第2章 语法“陷阱”
    DAO是什么技术
    Java泛型:类型擦除
    Java泛型:泛型类、泛型接口和泛型方法
    定义泛型接口
    java,<E>什么意思?
    java List 去重(两种方式)
    java中List集合及其遍历详解
    java 遍历arrayList的四种方法
  • 原文地址:https://www.cnblogs.com/danhuang/p/12957837.html
Copyright © 2011-2022 走看看