请注意这些重要的缩写:
P: 周期
Y: 年
M: 月
D: 日
T: 时间
H: 小时
M: 分钟
S: 秒
以上来自 ISO 8601 - 定义如何使用、存储和传输日期、时间和持续时间信息的国际标准。
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
DateInterval::format — 格式化时间间隔
format
format 字符 |
描述 | 示例值 |
---|---|---|
% |
文字 % |
% |
Y |
年,数字,至少 2 位,前面有前导 0 | 01 , 03 |
y |
年,数字 | 1 , 3 |
M |
月,数字,至少 2 位,前面有前导 0 | 01 , 03 , 12 |
m |
月,数字 | 1 , 3 , 12 |
D |
日,数字,至少 2 位,前面有前导 0 | 01 , 03 , 31 |
d |
日,数字 | 1 , 3 , 31 |
a |
DateTime::diff() 结果的总天数,否则为 (unknown) |
4 , 18 , 8123 |
H |
小时,数字,至少 2 位,前面有前导 0 | 01 , 03 , 23 |
h |
小时,数字 | 1 , 3 , 23 |
I |
分钟,数字,至少 2 位,前面有前导 0 | 01 , 03 , 59 |
i |
分钟,数字 | 1 , 3 , 59 |
S |
秒,数字,至少 2 位,前面有前导 0 | 01 , 03 , 57 |
s |
秒,数字 | 1 , 3 , 57 |
F |
微秒,数字,至少 6 位,前面有前导 0 | 007701 , 052738 , 428291 |
f |
微秒,数字 | 7701 , 52738 , 428291 |
R |
负数时为符号 "- ",正数时为 "+ " |
- , + |
r |
负数时为符号 "- ",正数时为空 |
- ,
|
返回格式化的时间间隔。
版本 | 描述 |
---|---|
7.2.12 | F 和 f 格式现在始终为正。 |
7.1.0 | 添加了 F 和 f 格式字符。 |
示例 #1 DateInterval 示例
<?php
$interval = new DateInterval('P2Y4DT6H8M');
echo $interval->format('%d days');
?>
上面的示例将输出
4 days
示例 #2 DateInterval 和进位点
<?php
$interval = new DateInterval('P32D');
echo $interval->format('%d days');
?>
上面的示例将输出
32 days
示例 #3 DateInterval 和 DateTime::diff() 使用 %a 和 %d 修饰符
<?php
$january = new DateTime('2010-01-01');
$february = new DateTime('2010-02-01');
$interval = $february->diff($january);
// %a 将输出总天数。
echo $interval->format('%a total days')."\n";
// 而 %d 仅输出未被月包含的天数。
echo $interval->format('%m month, %d days');
?>
上面的示例将输出
31 total days 1 month, 0 days
注意:
DateInterval::format() 方法不会重新计算时间字符串或日期段中的进位点。这是预期的,因为无法溢出像
"32 days"
这样的值,它可以解释为从"1 month and 4 days"
到"1 month and 1 day"
的任何内容。
请注意这些重要的缩写:
P: 周期
Y: 年
M: 月
D: 日
T: 时间
H: 小时
M: 分钟
S: 秒
以上来自 ISO 8601 - 定义如何使用、存储和传输日期、时间和持续时间信息的国际标准。