创建时间对象
$formats = [
'Y/y', // 数字表示的年份,4位与2位
'm/n', // 数值表示的月份,有无前导0
'd/j', // 一个月中的第几天,有无前导0
'g/h', // 12小时制的小时,有无前导0
'G/H', // 24小时制的小时,有无前导0
'i', // 分钟,有前导0
's', // 秒,有前导0
'u', // 微妙,最多6位
'D/l', // 英文表示的星期,简写与全写
'F/M', // 英文表示的月份,全写与简写
'S', // 2个字母表示一月中的第几天,进行解析时会被忽略
'z', // 一年中的第几天,从0开始
'a/A', // 上午与下午
'e/O/P/T', // 时区名称
'U', // 时间戳(从1970年开始的秒数)
];
// 创建一个指定时区$timezone(DateTimeZone对象)指定时间$time(时间字符串)的时间对象,默认当前时区当前时间
$datetime = new DateTime($time = "now", $timezone = null);
// 创建一个指定时区$timezone(DateTimeZone对象)指定时间$time(时间字符串)的时间对象,默认当前时区当前时间;需要指定$format格式
$datetime = $datetime->createFromFormat($format, $time, $timezone = null);
格式化
// 输出指定格式$format的时间
$datatime->format($format);
时间差
// 将时间增加一定时间周期$interval(DateInterval对象)
$datetime->add($interval);
// 将时间减少一定时间周期$interval(DateInterval对象)
$datetime->sub($interval);
// 计算与两一个时间的差,返回间隔周期(DateInterval对象)
$datetime->diff($datetime1);
// 获取当前时间与UTC的时区的偏移量(秒数)
$datetime->getOffset();
修改时间
// 将时间修改为另一个时间$modifier(日期/时间字符串)
$datetime->modify($modifier);
// 将日期改为指定年月日
$datetime->setDate($year, $month, $day);
// 将时间改为指定时分秒毫秒
$datetime->setTime($hour, $minute, $second = 0, $microsecond= 0);
// 将时间设置为指定时间戳$unixtimestamp的时间
$datetime->setTimestamp($unixtimestamp);
// 获取当前时间对象的时间戳
$datetime->getTimestamp();