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

  

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

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

    1.StringBuilder类和StringBuffer类(查手册会用即可)1.1 基本概念 由于String类描述的字符串内容无法更改,若程序中出现大量类似的字符串时需要申请独立的内存空间单独保存 ...

  2. Java工具类——日期相关的类

    前言 在日常的开发工作当中,我们经常需要用到日期相关的类(包括日期类已经处理日期的类),所以,我就专门整理了一篇关于日期相关的类,希望可以帮助到大家. 正文 一.日期类介绍 在 Java 里面,操作日 ...

  3. 21、java中和日期相关的类

    一.Data及其常用API 1.简介 Java中的时间使用标准类库的java.util.Date,其表示特定的瞬间,精确到毫秒.是用距离一个固定时间点的毫秒数(可正可负,long类型)表达一个特定的时 ...

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

    1.String类(重中之重)1.1 常用的方法(练熟.记住)(1)常用的构造方法 String() - 使用无参的方式构造空字符串对象. String(byte[] bytes) - 根据参数指定的 ...

  5. Java基础 与时间日期相关的类:System -Date -SimpleDateFormat -Calendar类 -解决后缀.000Z 的时区问题

    笔记总结: /**与时间相关的类:System_Date_SimpleDateFormat_Calendar类 * 1.system 类下的currentTimeMillis() * 输出从1970年 ...

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

    今天要讲的是Android里关于时间.日期相关类和方法.在Android中,跟时间.日期有关的类主要有Time.Calendar.Date三个类.而与日期格式化输出有关的DateFormat和Simp ...

  7. java8及8之前日期相关类

    java 8日期相关类 Instant:精确到纳秒的时间戳 Duration:处理有关基于时间的时间量 LocalDate:只包含日期,比如:2016-10-20 LocalTime:只包含时间,比如 ...

  8. Java基础之Java常用类--Object类,字符串相关类,包装类,日期相关类,数字相关类

    Java是一种面向对象的语言,也就是将万事万物可以描述为对象,特点如下: 1.面向对象是常见的一种思考习惯,符合人们的思考习惯.2.面向对象的出现,将复杂的事情简单化.3.面向对象的出现,将之前过程中 ...

  9. 时间日期相关类:Date类,DateFormat类&SimpleDateFormat类,Calendar类

    日期相关类 1.Date类:日期时间类 A.构造方法 Date(): 根据当前系统时间创建日期对象 ​ Date(Long time):根据传入的毫秒值时间创建日期对象 B.成员方法 Long get ...

随机推荐

  1. Android WorkManager工作约束,延迟与查询工作

    WorkManager工作约束,延迟与查询工作 本文可能会混用"工作"与"任务"这两个词. 本文例子使用Kotlin 准备一个工作类(任务)UploadWork ...

  2. Vue一些需要记住的指令/属性

    v-once:只能使得组件解析执行一次的指令,如: <div id="app"> <p>{{count}}</p> <!--count在v ...

  3. SQL 练习35

    查询选修「张三」老师所授课程的学生中,成绩最高的学生信息及其成绩 方式1: SELECT Student.sid,Student.sname,t.score from Student , (SELEC ...

  4. noip18

    T1 来自cf原题 考场直接暴力枚举 \(A,B\),15pts. 正解: 首先时间的表达式,\(T=\frac{A}{a_{i}}+\frac{B}{b_{i}}\),然后以\(\frac{1}{a ...

  5. mysqldump备份总结

    常用的备份参数 -A 备份全库 -B 备某一个数据库下的所有表 -R, --routines 备份存储过程和函数数据 --triggers 备份触发器数据 --master-data={1|2} 告诉 ...

  6. 从零开始实现简单 RPC 框架 5:网络通信之序列化

    我们在接下来会开始讲网络通信相关的内容了.既然是网络通信,那必然会涉及到序列化的相关技术. 下面是 ccx-rpc 序列化器的接口定义. /** * 序列化器 */ public interface ...

  7. 什么?都1202年了还不懂k8s和容器的关系?!这份k8s指南快拿走不谢!

    都1202年了,还是有许多人搞不清容器与k8s之间的关系.在开始本篇正文之前,我们先来捋一捋这对"CP"的关系. 你可能已经很熟悉虚拟机了,最常见的莫过于我们拿到macOS却需要用 ...

  8. 【maven】入门教程

    一:Maven简介 1.Maven是什么? 是一个跨平台的项目管理工具.使用java语言开发(Maven 3.3+ require JDK 1.7 or above to execute)2. 为什么 ...

  9. SpringBoot五步配置Mybatis

    第一步:Maven里面添加mybatis的引用jar包: <!--mybatis--> <dependency> <groupId>org.mybatis.spri ...

  10. Flink的CheckPoint

    Checkpoint checkpoint是Flink容错的核心机制.它可以定期的将各个Operator处理的数据进行快照存储(Snapshot). 如果Flink程序出现宕机,可以重新从这些快照中恢 ...