我从某些api获取了一些数据,并且我有时间使用以下格式/
PT127M
PT95M
分别表示127分钟和95分钟。我希望从默认功能获得127.现在我正在使用下面的快捷方式
$duration = "PT127M";
$duration = preg_replace("/[^0-9]/","",$duration);
有人告诉我这是什么类型的格式,以及是否有任何可用的PHP函数来从中检索分钟。
答案 0 :(得分:4)
可能与ISO 8601 Duration日期格式有关:
解决歧义," P1M"是一个月的持续时间" PT1M"是一分钟的持续时间(注意时间指示符T,它在时间值之前)。使用的最小值也可能有小数,如" P0.5Y"表示半年。这个小数部分可以用逗号或句号指定,如" P0,5Y"或" P0.5Y"。该标准并未禁止持续时间表示中的日期和时间值超过其超过"结转点"除非如下所述。因此," PT36H"可以和" P1DT12H"表示相同的持续时间。但请记住," PT36H"与#34; P1DT12H"不同从夏令时切换到夏令时。
您可以使用DateInterval在PHP中解析:
以下是一些简单的例子。两天是P2D。两秒钟是PT2S。 P6YT5M是六年零五分钟。
使用此信息,您可以使用以下代码解析$duration
对象:
$duration = 'PT127M';
$duration = new DateInterval($duration); // Create a DateInteval Object
echo $duration->format('%i'); // Print minutes from DateInterval Object
答案 1 :(得分:4)
你可以得到这样的分钟:
$duration = 'PT127M';
$di = new DateInterval($duration);
$minutes = $di->format('%i');