【问题标题】:Formatting seconds to a readable format [duplicate]将秒格式化为可读格式[重复]
【发布时间】:2013-10-30 10:49:59
【问题描述】:

我知道dategmdate 函数,但在这种情况下我的需求不同。

我有几秒钟需要转换为:

A 天 B 小时 C 分钟 D 秒

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

任何帮助将不胜感激。

【问题讨论】:

标签: php date format


【解决方案1】:

只需使用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"
?>

DEMO

【讨论】:

    【解决方案2】:

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

    使用示例:

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

    Link to the function + Demo.

    【讨论】:

      猜你喜欢
      • 2014-07-26
      • 1970-01-01
      • 1970-01-01
      • 2017-03-12
      • 1970-01-01
      • 2018-01-07
      • 2017-04-10
      • 2013-10-09
      • 2011-09-26
      相关资源
      最近更新 更多