php时间对象

2021-10-30

创建时间对象

$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();

 

{/if}