似乎有很多信息將時間段轉換爲時間段,但不是相反的方式。PHP將時間轉換爲時間段
我需要做的一個例子是將120分鐘轉換爲P0DT2H0M0S。 和13:10到P0DT13H10M0S中。 並進入PT2H0M0S 120分鐘。
任何快速簡單的方法來做到這一點?
似乎有很多信息將時間段轉換爲時間段,但不是相反的方式。PHP將時間轉換爲時間段
我需要做的一個例子是將120分鐘轉換爲P0DT2H0M0S。 和13:10到P0DT13H10M0S中。 並進入PT2H0M0S 120分鐘。
任何快速簡單的方法來做到這一點?
我相信你所描述的格式是ISO 8601日期/時間格式。 Here's how it describes intervals.
在爲DateInterval
類的PHP文件,有人分享的你怎麼可能一個字符串轉換成ISO 8601的面向對象的方法的例子:
http://www.php.net/manual/en/class.dateinterval.php#113415
而這裏是別人的溶液,使用功能性的,而不是面向對象的日期的方法:
Cheerz。看起來我可以用這個工作。 – Rik
最簡單的方法,來獲得ISO-8601的時間間隔持續時間,與方法createFromDateString
echo getISO8601duration_withZeros("3 year 20 day 15 minute"); # P3Y0M20DT0H15M0S
echo getISO8601duration_withZeros("1 hour 120 minutes"); # P0Y0M0DT1H120M0S
echo getISO8601duration_withZeros("7 year 5 month 3 day"); # P7Y5M3DT0H0M0S
# 13:10 example
$dt = new DateTime('13:10');
$interval_spec = "{$dt->format('H')} hour {$dt->format('i')} minute";
echo getISO8601duration_withZeros($interval_spec); # P0Y0M0DT13H10M0S
function getISO8601duration_withZeros($interval_spec) {
$interval = DateInterval::createFromDateString($interval_spec);
return $interval->format('P%yY%mM%dDT%hH%iM%sS');
}
我會使用日期/時間函數。獲取當前時間,使用'DateTime :: modify()'修改時間,然後使用'DateTime :: diff()'查找差異,然後您可以輸出所需的格式。 –