我知道date
andgmdate
功能,但在这种情况下我的需求是不同的。
我有几秒钟需要转换为:
A 天 B 小时 C 分钟 D 秒
我不知道如何像这样格式化我的秒数。
任何帮助,将不胜感激。
只需使用floor
值86400
(一天中的秒数 - 60 * 60 * 24
)、3600
(一小时内的秒数 - 60 * 60
)和60
(一分钟内的秒数):
<?php
function secondsToTime($seconds) {
$days = floor($seconds / 86400);
$seconds -= ($days * 86400);
$hours = floor($seconds / 3600);
$seconds -= ($hours * 3600);
$minutes = floor($seconds / 60);
$seconds -= ($minutes * 60);
$values = array(
'day' => $days,
'hour' => $hours,
'minute' => $minutes,
'second' => $seconds
);
$parts = array();
foreach ($values as $text => $value) {
if ($value > 0) {
$parts[] = $value . ' ' . $text . ($value > 1 ? 's' : '');
}
}
return implode(' ', $parts);
}
var_dump(secondsToTime(1234561));
//string(36) "14 days 6 hours 56 minutes 1 second"
?>
这可以通过Date and Time 扩展来实现:
echo secondsToTime(1234563);
# 14 days, 6 hours, 56 minutes and 3 seconds