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
PHP DateTime类常用方法总结的更多相关文章
- 当碰到unix纪元问题时strtotime怎么转时间戳(DateTime类的使用方法)
UNIX纪元时间又称POSIX时间/新纪元时间(Epoch Time):从协调世界时1970年1月1日0时0分0秒起到现在的总秒数,不包括闰秒.正值表示1970以後,负值则表示1970年以前. Uni ...
- C#string类;math类;datetime类
String类: .Length字符的长度 .Trim()去掉开头以及结尾的空格 .TrimStart()去掉字符串开头的空格 .TrimEnd()去掉字符串后面的空格 .ToUpper()全 ...
- string、math、random、datetime类
1.string类 变量.Replace("想要替换掉的字符或字符串","转换后的字符或字符串");//替换 练习:判断邮箱格式是否正确 ...
- PHP使用DateTime类做时间日期到字符串转换
PHP关于时间日期的处理不是很规范,简单就简单了,就是不知道输入的字符串是否能够正确转化为需要的DateTime类型. 面向对象的PHP应该使用DateTime类来做string和dateTime的转 ...
- C# - 系统类 - DateTime类
DateTime类 ns:System 此类是一个结构 提供了访问和修改它所代表的时间 创建DateTime实例的几种方式 DateTime time = , , , , , ); Console.W ...
- C# DateTime类,TimeSpan类
DateTime类是.Net中用于处理时间类型数据的. 一.字段 MaxValue 表示 DateTime 的最大可能值.此字段为只读. MinValue 表示 DateTime 的最小可能值 ...
- 类之string类、Math类、DateTime类
String类 string a = "abcdef123456"; 注:字符串的长度是从0开始计数的如:0,1,2,3,4,5,6,7,8,9........ a.Length; ...
- Python datetime模块的datetime类
datetime模块定义了下面这几个类: datetime.date:表示日期的类.常用的属性有year, month, day. datetime.time:表示时间的类.常用的属性有hour, m ...
- 【2017-02-26】String类、Math类、DateTime类
一.String类 黑色小扳手 - 属性 后面不带括号紫色立方体 - 方法 后面带括号 字符串.Length - 字符串长度,返回int类型 字符串.TrimStart() - 去 ...
随机推荐
- MyBatis(4):使用limit实现分页
用limit实现分页,首先要创建一个Maven项目,搭建好mybatis的实验环境,并且连接好数据库 代码 1,编写dao接口 UserMapper //查询全部用户实现分页 List<User ...
- 【Python】【Module】json and pickle
Python中用于序列化的两个模块 json 用于[字符串]和 [python基本数据类型] 间进行转换 pickle 用于[python特有的类型] 和 [python基本数据类型]间进 ...
- 拷贝txt文本中的某行的数据到excel中
package com.hope.day01;import java.io.*;import java.util.ArrayList;public class HelloWorld { publ ...
- 注册页面css版本
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- SVM中的软间隔最大化与硬间隔最大化
参考文献:https://blog.csdn.net/Dominic_S/article/details/83002153 1.硬间隔最大化 对于以上的KKT条件可以看出,对于任意的训练样本总有ai= ...
- Jsp/Servlet文件的上传和下载
文件上传的入门 文件上传的步骤: 总结实现思路: 1.创建核心上传类ServletFileUpload,这个时候需要一个工厂类 2.创建磁盘工厂类对象DiskFileItemFactory ...
- 30个类手写Spring核心原理之AOP代码织入(5)
本文节选自<Spring 5核心原理> 前面我们已经完成了Spring IoC.DI.MVC三大核心模块的功能,并保证了功能可用.接下来要完成Spring的另一个核心模块-AOP,这也是最 ...
- Nginx 架构基础
1 Nginx请求处理流程 2 Nginx进程结构 3 Nginx进程管理:信号 3.1 Master进程 监控worker进程 CHLD 管理worker进程 接收信号 TERM,INT QUIT ...
- MySQL获取对应时间
一.查询当前时间包含年月日 SELECT CURDATE(); SELECT CURRENT_DATE(); 二.查询当前时间包含年月日时分秒 SELECT NOW(); SELECT SYSDATE ...
- CF805B 3-palindrome 题解
Content 给定一个整数 \(n\),请构造出长度为 \(n\) 的仅含 a.b.c 三个字母的字符串,使得其中没有长度为 \(3\) 的回文子串,并且 c 出现的次数尽可能少. 数据范围:\(1 ...