PHP
日期和时间 | Date and Time

DateInterval::format

DateInterval::format

(PHP 5 >= 5.3.0, PHP 7)

DateInterval :: format - 格式化时间间隔

描述

public string DateInterval::format ( string $format )

格式化时间间隔。

参数

format

格式字符描述示例值
%文字%%
Y 年份,数字,至少2位数,前导001, 03
y 年,数字1, 3
M 月份,数字,至少2位数,前导001, 03, 12
m 几个月,数字1, 3, 12
D 天,数字,至少2位数,前导001, 03, 31
d天,数字1, 3, 31
a DateTime :: diff()或(未知)的结果总天数4, 18, 8123
H小时,数字,至少2位数,前导001, 03, 23
h 小时,数字1, 3, 23
I 分钟,数字,至少2位数,前导001, 03, 59
i 分钟,数字1, 3, 59
S 秒,数字,至少2位数,前导001, 03, 57
s 秒,数字1, 3, 57
F微秒,数字,至少6位数,前导0007701, 052738, 428291
f 微秒,数字7701, 52738, 428291
R “ - ”表示否定,“+”表示正面-, +
r 签名“ - ”时为负数,正数时为空-,

返回值

返回格式化的时间间隔。

注意

注意DateInterval :: format()方法不会重新计算结转时间字符串的点或日期段。这是预料之中的,因为它不可能像“32天”那样溢出,可以解释为从“1个月和4天”“1个月和1天”之间的任何值

更新日志

描述
7.1.0添加了F和f格式的字符。

例子

示例 #1 DateInterval example

<?php $interval = new DateInterval('P2Y4DT6H8M' echo $interval->format('%d days' ?>

上面的例子将输出:

4 days

示例 #2 DateInterval and carry over points

<?php $interval = new DateInterval('P32D' echo $interval->format('%d days' ?>

上面的例子将输出:

32 days

示例 #3 DateInterval and DateTime::diff() with the %a and %d modifiers

<?php $january = new DateTime('2010-01-01' $february = new DateTime('2010-02-01' $interval = $february->diff($january // %a will output the total number of days. echo $interval->format('%a total days')."\n"; // While %d will only output the number of days not already covered by the // month. echo $interval->format('%m month, %d days' ?>

上面的例子将输出:

31 total days 1 month, 0 days