如果我对您的理解正确,您想转换如下内容:
$dateString = "2 days 4 hours";
时间戳?
如果是这种情况,并且您知道总会有几天/几小时可以执行以下操作:
$dateString = "2 days 4 hours";
preg_match_all('!\d+!', $dateString , $numbersOnly);
$partialTimeStamp= (($numbersOnly[0][0]*24)+$numbersOnly[0][1])*3600;
print_r($partialTimeStamp); // will print 187200
有了这个,你会有几秒钟的时间。例如,如果您的字符串中还有分钟,您会这样做:
$dateString = "2 days 4 hours 15 minutes";
preg_match_all('!\d+!', $dateString , $numbersOnly);
$partialTimeStamp= (($numbersOnly[0][0]*24)+$numbersOnly[0][1])*3600 + $numbersOnly[0][2]*60;
print_r($partialTimeStamp); // will print 188100
使用这个部分时间戳,您可以计算下一个时间戳,例如:
$nextTimeStamp = time () + $partialTimeStamp;
print_r($nextTimeStamp);
编辑:错过了“回到人类可读”部分..
为此,您可以执行以下操作:
$days = floor($partialTimeStamp/ 86400);
$partialTimeStamp = $partialTimeStamp - $days*86400;
$hours = floor($partialTimeStamp/ 3600);
$min = floor($partialTimeStamp/ 60 % 60);
不仅如此:
print_r($days." days ".$hours." hours ".$min. " minutes");// will output 2 days 4 hours 15 minutes
我希望这会有所帮助。
BR