0

我知道dateandgmdate功能,但在这种情况下我的需求是不同的。

我有几秒钟需要转换为:

A 天 B 小时 C 分钟 D 秒

我不知道如何像这样格式化我的秒数。

任何帮助,将不胜感激。

4

2 回答 2

1

只需使用floor86400(一天中的秒数 - 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"
?>

演示

于 2013-10-30T10:57:01.493 回答
0

这可以通过Date and Time 扩展来实现:

使用示例:

echo secondsToTime(1234563);
# 14 days, 6 hours, 56 minutes and 3 seconds

链接到函数+ Demo

于 2013-10-30T11:17:12.247 回答