php - 将秒( float )转换为毫米 :ss:ms in php

标签 php time

我有下面的 php 函数,它从数据库中获取一个以秒为单位的时间参数。秒数在数据库中是 float(6,1) 类型。然后我将该值传递给下面的函数。我遇到的问题是,如果我有 1655.5 秒,我可以获得小时、分钟和秒。但是我如何获得剩余的毫秒数。

即 1655.5 = 27m:35s.5ms

提前感谢您的帮助。

<?php
    function convertTo($init)
    {
          $hours = ($init / 3600);
          $minutes = (($init / 60) % 60);
          $seconds = $init % 60;

            if($minutes < 10)
            {
                $minutes = "0".$minutes;
            }

            if($seconds < 10)
            {
                $seconds = "0".$seconds;
            }

          $milli = /* code to ret the remaining milliseconds */   
          $stageTime = "$minutes:$seconds.$milli";
          return $stageTime;
    }

?>

最佳答案

可能有点违反直觉,最简单的方法是提取毫秒作为第一步。

简单floor()初始值,并从输入中减去结果。这将为您提供小数点的右侧,然后您可以将其乘以 1000 得到毫秒数 - 然后您应该将其转换为整数以确保生成的字符串是合理的。

function convertTo($init)
{
      $secs = floor($init);
      $milli = (int) (($init - $secs) * 1000);

      $hours = ($secs / 3600);
      $minutes = (($secs / 60) % 60);
      $seconds = $secs % 60;
      // ...

关于php - 将秒( float )转换为毫米 :ss:ms in php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17820239/

相关文章:

javascript - jQuery ajax,附加数据有效但数据对另一端(计算机/用户)可见吗?

php - 在 Laravel 中,如何将服务依赖注入(inject)到 Controller 方法中

performance - 衡量算法准确性和速度之间的权衡

sql - 谁能在 SQLite 中识别这种日期/时间格式?

java - 来自java的日期时间不同步(tomcat 7)

php - 选择 mysql 表中的所有列但不显示重复结果,SELECT DISTINCT id

php - 如何分配来自mysql数据库的整数值以便在前端呈现字符串?

php - Zend 中的循环资源依赖错误

ruby - 是否有用于 Golang 风格持续时间解析的 Ruby 库?

ruby - 两个时间实例之间的天数