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
 */

  

原文地址:https://www.cnblogs.com/mingzhanghui/p/9332841.html

时间: 2024-08-24 20:48:28

php 日期相关的类 DateInterval DateTimeZone DatePeriod的相关文章

(1)StringBuilder类和StringBuffer类 (2)日期相关的类 (3)集合框架 (4)List集合

1.StringBuilder类和StringBuffer类(查手册会用即可)1.1 基本概念 由于String类描述的字符串内容无法更改,若程序中出现大量类似的字符串时需要申请独立的内存空间单独保存,此时对内存空间的消耗比较大. 为了节省内存空间希望对字符串内容本身直接进行更改,则需要使用java.lang.StringBuilder类或者java.lang.StringBuffer类. 其中StringBuffer类是从jdk1.0开始存在,是一个线程安全的可变字符序列,效率比较低 其中St

21、java中和日期相关的类

一.Data及其常用API 1.简介 Java中的时间使用标准类库的java.util.Date,其表示特定的瞬间,精确到毫秒.是用距离一个固定时间点的毫秒数(可正可负,long类型)表达一个特定的时间点. 固定的时间点叫纪元(epoch),是UTC时间1970年 1月 1日 00:00:00  ,UTC(Universal Time Coordinated世界调整时间)与GMT(Greenwich Mean Time格林威治时间)一样,是一种具有实际目的的科学标准时间. 因为Date的设计具有

(1)String类 (2)StringBuilder类和StringBuffer类 (3)日期相关的类

1.String类(重中之重)1.1 常用的方法(练熟.记住)(1)常用的构造方法 String() - 使用无参的方式构造空字符串对象. String(byte[] bytes) - 根据参数指定的byte数组来构造对象. String(byte[] bytes, int offset, int length) - 使用bytes数组中从offset位置开始的length个字节来构造对象. String(char[] value) - 根据参数指定的char数组来构造对象. String(ch

Android随笔之——Android时间、日期相关类和方法

今天要讲的是Android里关于时间.日期相关类和方法.在Android中,跟时间.日期有关的类主要有Time.Calendar.Date三个类.而与日期格式化输出有关的DateFormat和SimpleDateFormat,今天会稍微提到关于这两个类的用法,下次会找个时间细讲. 一.Time类 在官方的API中,有建议说使用Time代替Calendar,原因不明,据说用Time对CPU的负荷比较小. 在Time中,年月日时分秒的转义字符分别对应%Y%m%d%H%M%S,切记,大小写千万不能写错

java - 工具类 - 包装类,数字相关类, 日期相关类

工具类:java开发者写好的类 1.包装相关类 2.数字相关类 3.日期类 4.字符串 5.集合相关类 6.异常相关类 7.输入输出相关 IO(input/output) 8.线程 9.网络 10.注解 11.GUI 1.包装类: 为了将基本类型也面向对象,所以将他们分装进包装类中 1.byte -- Byte,short --Short,int -- Integer,long -- Long 2.float -- Float,double -- Double 3.char -- Charact

Java日期时间API系列8-----Jdk8中java.time包中的新的日期时间API类的LocalDate源码分析

目录 0.前言 1.TemporalAccessor源码 2.Temporal源码 3.TemporalAdjuster源码 4.ChronoLocalDate源码 5.LocalDate源码 6.总结 0.前言 通过前面Java日期时间API系列6-----Jdk8中java.time包中的新的日期时间API类中主要的类关系简图如下: 可以看出主要的LocalDate, LocalTime, LocalDateTime, Instant都是实现相同的接口,这里以LocalDate为例分析jav

Java日期时间API系列19-----Jdk8中java.time包中的新的日期时间API类,ZonedDateTime与ZoneId和LocalDateTime的关系,ZonedDateTime格式化和时区转换等。

通过Java日期时间API系列6-----Jdk8中java.time包中的新的日期时间API类中时间范围示意图:可以很清晰的看出ZonedDateTime相当于LocalDateTime+ZoneId. ZonedDateTime是用来处理时区相关的时间,它的各种计算都离不开ZoneId.先看ZoneId. 1. ZoneId 为时区ID,比如Europe/Paris,表示欧洲巴黎时区 1.1 时区相关知识,时区,UTC时间,GMT时间,Unix时间戳 时区 地球自西向东旋转,东边比西边先看到

java日期比较工具类

package com.net.util; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import com.sun.org.apache.xerces.internal.impl.xpath.regex.ParseException; /** * 日期比较工具类 * @author zhangdi * */ public class DateUtil { /** *

C# 常用日期类型转换帮助类

本文转载:http://www.cnblogs.com/iamlilinfeng/p/3378659.html 最近工作比较忙,与此同时自己也在业余时间开发一个电子商务网站.虽然每天都很累,但感觉过的相当充实.由于时间紧张,最近没有经常来园子,只是有人留言的时候过来回复下.今天过来刷刷存在感. 二.应用场景举例 1.按指定日期查询 (1)用户在UI上选择日期; (2)系统计算出今天的起始时间(****年**月**日 00:00:00)和今天的结束时间(****年**月**日 23:59:59);