【问题标题】:How to make unix timestamp to show time over 24 hours?如何使 unix 时间戳显示超过 24 小时的时间?
【发布时间】:2011-11-21 20:22:17
【问题描述】:

我想以小时为单位显示任何给定时间。

例子:

Unix 时间戳:169200

等于 1 天 23 小时...

但是如何将其转换为小时以显示 47:00:00(47 小时)?

谢谢

编辑:它也必须显示分和秒;)

【问题讨论】:

    标签: php


    【解决方案1】:

    Unix 时间戳是秒数。每分钟有60秒,每小时有60分钟。因此,要将秒数转换为小时数,请除以 60*60 = 3600

    如果您还需要分钟和秒:

    $timestamp = 169200;
    
    $secs = $timestamp%60;
    $mins = floor($timestamp/60);
    $hours = floor($mins/60);
    $mins = $mins%60;
    
    printf("%02d:%02d:%02d", $hours, $mins, $secs);
    

    http://ideone.com/gFKv2

    【讨论】:

    • 太棒了。但是几秒钟后有一个奇怪的数字(8)。将 printf 更改为 sprintf 修复了它:S 奇怪...
    • 这可能是因为我在printf 之前输入了echoprintf 返回打印字符串的长度,然后在打印后回显。如果你去掉echoprintf 应该没问题。
    【解决方案2】:
    $hours = $timestamp / 3600;
    

    您可以使用floor()ceil() 来整点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-05
      • 2021-04-17
      • 2011-01-31
      • 2016-11-16
      • 2021-11-20
      • 1970-01-01
      • 2021-11-15
      相关资源
      最近更新 更多