請注意這些重要的縮寫:
P:期間
Y:年
M:月
D:日
T:時間
H:小時
M:分鐘
S:秒
以上內容來自 ISO 8601 - 一個定義如何使用、儲存和傳輸日期、時間和持續時間資訊的國際標準。
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
DateInterval::format — 格式化時間區間
format
format 字元 |
說明 | 範例值 |
---|---|---|
% |
字面值 % |
% |
Y |
年,數值,至少兩位數,不足補零 | 01 , 03 |
y |
年,數值 | 1 , 3 |
M |
月,數值,至少兩位數,不足補零 | 01 , 03 , 12 |
m |
月,數值 | 1 , 3 , 12 |
D |
日,數值,至少兩位數,不足補零 | 01 , 03 , 31 |
d |
日,數值 | 1 , 3 , 31 |
a |
DateTime::diff() 計算結果的總天數,否則為 (unknown) |
4 , 18 , 8123 |
H |
小時,數值,至少兩位數,不足補零 | 01 , 03 , 23 |
h |
小時,數值 | 1 , 3 , 23 |
I |
分鐘,數值,至少兩位數,不足補零 | 01 , 03 , 59 |
i |
分鐘,數值 | 1 , 3 , 59 |
S |
秒,數值,至少兩位數,不足補零 | 01 , 03 , 57 |
s |
秒,數值 | 1 , 3 , 57 |
F |
微秒,數值,至少六位數,不足補零 | 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 - 一個定義如何使用、儲存和傳輸日期、時間和持續時間資訊的國際標準。