• php 日期相关的类 DateInterval DateTimeZone DatePeriod


    * DateInterval

    <?php
    /**
     * Created by PhpStorm.
     * User: Mch
     * Date: 7/18/18
     * Time: 21:30
     */
    $datetime = new DateTime('2018-07-18 21:30:00');
    
    // +2 weeks
    $interval = new DateInterval('P2W');
    
    $datetime->add($interval);
    echo $datetime->format('Y-m-d H:i:s').PHP_EOL;
    
    // + 1month
    $datetime->add(
        new DateInterval('P1M')
    );
    echo $datetime->format('Y-m-d H:i:s').PHP_EOL;
    
    // -1month -2weeks
    $datetime->add(
        DateInterval::createFromDateString("-1 month -2 weeks")
    );
    echo $datetime->format('Y-m-d H:i:s').PHP_EOL;
    
    echo '------------------',PHP_EOL;
    // start, interval, recurrences
    $datePeriod = new DatePeriod(
        $datetime,
        DateInterval::createFromDateString('-1 day'),
        3
    );
    foreach ($datePeriod as $date) {
        echo $date->format('Y-m-d'),PHP_EOL;
    }
    

      

      output:

    2018-08-01 21:30:00
    2018-09-01 21:30:00
    2018-07-18 21:30:00
    ------------------
    2018-07-18
    2018-07-17
    2018-07-16
    2018-07-15

    * DateTimeZone

    <?php
    /**
     * Created by PhpStorm.
     * User: Mch
     * Date: 7/18/18
     * Time: 21:42
     */
    $timezone = new DateTimeZone('Asia/Tokyo');
    $datetime = new DateTime('2018-07-18 22:42:00', $timezone);
    $datetime->setTimezone(
        new DateTimeZone('Asia/Shanghai')
    );
    echo $datetime->format('Y-m-d H:i:s').PHP_EOL;
    // 2018-07-18 21:42:00
    

      

      

    * DatePeriod

    <?php
    /**
     * Created by PhpStorm.
     * User: Mch
     * Date: 7/18/18
     * Time: 21:51
     */
    $start = new DateTime();
    // $interval = new DateInterval('P2W');
    $interval = new DateInterval('P1D');
    $period = new DatePeriod(
        $start,
        $interval,
        3,
        DatePeriod::EXCLUDE_START_DATE
    );
    
    foreach ($period as $nextDateTime) {
        echo $nextDateTime->format('Y-m-d H:i:s'),PHP_EOL;
    }
    /**
    2018-07-19 15:54:20
    2018-07-20 15:54:20
    2018-07-21 15:54:20
     */
    

      

  • 相关阅读:
    uva-11129-分治
    HDU 6016
    POJ 2142
    CodeForces 778B
    CodeFroces 758C
    HDU 5900
    HDU 5903
    HDU 5904
    POJ 3080
    HDU 5195
  • 原文地址:https://www.cnblogs.com/mingzhanghui/p/9332841.html
Copyright © 2020-2023  润新知