尝试在php中将复合持续时间转换为秒:
示例:
1小时3分钟
2小时1分钟
5分钟
1分钟
我尝试过strtotime(),还有另一个内置函数可以转换为秒吗?
感谢您的帮助!
我尝试过的代码$ seconds = strtotime('5分钟');
答案 0 :(得分:3)
选项1 (健壮):将DateTime
和DateInterval
中的函数串在一起以实现所需的功能:
w3
date_create('@0')
创建一个带有时间戳<?php
$interval = "2 hours";
echo date_create('@0')->add(DateInterval::createFromDateString($interval))->getTimestamp();
?>
的新DateTime
对象,然后使用{{3}为您为0
指定的内容添加PHP创建的时间间隔}。最后,您DateInterval::createFromDateString()
输出您添加的秒数。
选项2 (更简单):坚持使用数学$interval
以获得正确答案:
strtotime()
get and echo the Unix timestamp
利用对PHP playground的了解,将其与当前的Unix时间抵消,以获取strtotime函数中的秒数。
答案 1 :(得分:0)
确定可以使用strtotime。
只需使用“ +”即可。 $ time,它会假设您的意思是将来会有很多时间。
然后只要减去Unix时间,就可以以秒为单位计算字符串。
$arr = ['1 hour 3 mins','2 hours 1 min','5 mins','1 min'];
foreach($arr as $val){
$seconds =0;
$temp = explode(" ", trim($val));
//Use array_chunk to group the number with unit.
foreach(array_chunk($temp,2) as $part){
$seconds +=strtotime("+" . implode(" ", $part)) - time();
}
echo $seconds . "\n";
}
输出:
3780
7260
300
60