【问题标题】:Convert 24 hour clock with colon string to minutes with PHP?使用PHP将带有冒号字符串的24小时时钟转换为分钟?
【发布时间】:2014-11-06 23:36:22
【问题描述】:

使用 PHP,我需要从我的数据库中转换一个字符串,该字符串实际上是一个带有冒号的 24 小时制时间。

例子:

00:30
01:15
03:59

应该是以下代表分钟的整数。

30
75
239

请问,最好的方法是什么?

提前感谢您的帮助。

【问题讨论】:

  • 好吧,现在建议这个可能为时已晚,但请使用 mysql 时间或时间戳,而不是“文本”。
  • @James 可能不是 OP 的情况,但我曾经在运输调度项目中不得不使用“超过 24 小时”的时间。我需要一个函数来计算像“24:36”和“25:04”这样的时间的时间戳,这就是你可以使用这样的函数的原因。
  • 事后看来,我会的。它来自 JSON,我对编码很陌生。
  • 您可以选择用户 Overv 的答案,但我建议您也看看我的答案,因为在返回结果之前检查数据完整性是一种很好的做法。保留 Overv 的答案,但添加有条件的,以后不会有任何错误。

标签: php string time integer


【解决方案1】:

一种方法是简单地拆分字符串:

function get_minutes($time_string) {
    $parts = explode(":", $time_string);

    $hours = intval($parts[0]);
    $minutes = intval($parts[1]);

    return $hours * 60 + $minutes;
}

例如:

print(get_minutes("3:20"));

打印200

【讨论】:

    【解决方案2】:
    function totalMinutes($time) {
        $aux = explode(":", $time);
        if(count($aux) == 2){
            return ($aux[0] * 60) + $aux[1];
        }
        else{return 0;}
    }
    
    echo totalMinutes("03:59"); //239
    
    echo totalMinutes("bad data"); //0
    

    【讨论】:

      猜你喜欢
      • 2020-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多