【问题标题】:Calculate hours correctly from minutes从分钟正确计算小时
【发布时间】:2012-12-12 02:46:25
【问题描述】:

我正在尝试将 6783 分钟转换为天、小时和分钟,但我无法获得正确的小时数。现在它显示67835 days, 113 hours, and 3 minutes。如您所见,时间完全错误!这是我目前正在使用的代码:

define('CONFIGURATION_HOURSPERDAY',     '24');
define('CONFIGURATION_HOURS',           intval((string)$stats->result->logonMinutes / 60));
define('ACTIVITY_DAYS',                 round(CONFIGURATION_HOURS / CONFIGURATION_HOURSPERDAY));
define('ACTIVITY_HOUR',                 intval((string)$stats->result->logonMinutes / 60));
define('ACTIVITY_MINUTES',              ((string)$stats->result->logonMinutes % 60));

if(ACTIVITY_DAYS > 0) {
    echo ACTIVITY_DAYS.' '.(ACTIVITY_DAYS == 1 ? 'day' : 'days');
}
echo ', '.ACTIVITY_HOUR.' '.(ACTIVITY_HOUR == 1 ? 'hour' : 'hours');
echo ', and '.ACTIVITY_MINUTES.' '.(ACTIVITY_MINUTES == 1 ? 'minute' : 'minutes');

$stats->result->logonMinutes 包含我在 EVE Online 中的总在线时间,即 6783 分钟。

我应该怎么做才能显示正确的小时数?

提前致谢。

【问题讨论】:

    标签: php hour days


    【解决方案1】:

    你忘了把小时和分钟包装起来。

    define('ACTIVITY_HOUR', intval((string)$stats->result->logonMinutes / 60) % 24);
    

    而且... 投射到 string 来划分某些东西没有多大意义。

    【讨论】:

    • 非常感谢! :) 它就像一个魅力。我会尽可能接受你的回答。你是对的(string)。我已将它们从我的源代码中删除 :)
    【解决方案2】:
    $start = 6783;
    $days = $start / 1440;
    $start = $start % 1440;
    $hours = $start / 60;
    $start = $start % 60;
    $minutes = $start;
    

    【讨论】:

      猜你喜欢
      • 2012-07-01
      • 2018-01-22
      • 1970-01-01
      • 1970-01-01
      • 2023-03-05
      • 2022-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多