$durations = [
'Y', // 年
'M', // 月
'D', // 天
'W', // 周。这些会转换为天,因此不能与合并D。
'H', // 小时
'M', // 分钟
'S', // 秒
];
// 根据$duration创建时间周期对象;$duration规范:以字母P开头每个持续时间由一个整数值表示,后跟一个周期指示符,如果指定时间好需要在时间前加T;从大到小指定周期,例:P1Y4D,P1DT1H
$interval = new DateInterval($duration);
$formats = [
'Y', // 年,至少2位,有前导0
'y', // 年
'M', // 月,至少2位,有前导0
'm', // 月
'D', // 天,有前导0
'd', // 天
'a', // 由于DateTime :: diff()或(unknown)其他原因导致的总天数
'H', // 小时,至少2位,有前导0
'h', // 小时
'I', // 分钟,至少2位,有前导0
'i', // 分钟
'S', // 秒,至少2位,有前导0
's', // 秒
'F', // 微秒,至少6位,,有前导0
'f', // 微秒
'R', // 负的加“-”,正的加“+”
'r', // 负的加“-”,正的加“空”
];
// 将对象格式化为人类易懂的数据;$format规范:每个格式字符必须以%为前缀,可以有其他非指定的格式字符
$interval->format($format);