当前位置: 首页 > 编程笔记 >

PHP中十进制时间的转换

奚才良
2023-03-14
本文向大家介绍PHP中十进制时间的转换,包括了PHP中十进制时间的转换的使用技巧和注意事项,需要的朋友参考一下

将时间值转换为代表分钟数的十进制值对于某些计算可能很有用。以下函数将时间作为hh:mm:ss的字符串,并以分钟为单位返回一个十进制值。

/**
 * 把时间转换成十进制时间。
 *
 * @param string $time The time to convert
 *
 * @return integer The time as a decimal value.
 */
function time_to_decimal($time) {
    $timeArr = explode(':', $time);
    $decTime = ($timeArr[0]*60) + ($timeArr[1]) + ($timeArr[2]/60);
 
    return $decTime;
}

如果我们采用11:11:11的时间,则explode()函数将其分为小时,分钟和秒,分为三部分,然后按以下方式进行处理:

Minutes = (Hours x 60) + (Minutes) + (Seconds / 60)
Minutes = (11 x 60) + (11) + (11 / 60)
Minutes = (660) + (11) + (0.18333333)
Minutes = 671.18333333

该功能可以如下使用:

echo time_to_decimal("11:11:11"); // prints 671.18333333

此函数的相反操作采用十进制值,并以hh:mm:ss格式返回字符串。

/**
 * 将十进制时间转换为以下格式的时间 hh:mm:ss
 *
 * @param integer The time as a decimal value.
 *
 * @return string $time The converted time value.
 */
function decimal_to_time($decimal) {
    $hours = floor($decimal / 60);
    $minutes = floor($decimal % 60);
    $seconds = $decimal - (int)$decimal;
    $seconds = round($seconds * 60);
 
    return str_pad($hours, 2, "0", STR_PAD_LEFT) . ":" . str_pad($minutes, 2, "0", STR_PAD_LEFT) . ":" . str_pad($seconds, 2, "0", STR_PAD_LEFT);
}

该功能可以如下使用:

echo decimal_to_time(671.18333333); // prints 11:11:11

请注意,这些功能处理的是时间量,而不是一天中的时间。在时间和一天中的小数时间之间进行转换需要一组不同的计算。

 类似资料:
  • 问题内容: 很难说出这里的要求。这个问题是模棱两可的,模糊的,不完整的,过于广泛的或修辞性的,不能以目前的形式合理地回答。如需帮助澄清此问题以便可以重新打开, 请访问帮助中心。 7年前关闭。 我想在PHP中将时间字符串(例如2:12:0)转换为以小时为单位的十进制格式(例如2:12:0将为2.2小时)。 问题答案: 使用冒号爆炸从我的头顶相当愚蠢的转换:

  • 问题内容: 我想知道的是最有效的代码转换方式(迅速2): 十进制到二进制 二进制到十进制 十进制到十六进制 十六进制到十进制 二进制到十六进制 十六进制到二进制 我已经有了实现该目标的基本且漫长的方法,但是我想找到一种非常有效的方法。 抱歉,问题有点长… 问题答案: 两者和都有带有(基)的初始化程序。结合这些,您可以实现所有转化:

  • 问题内容: 我有一个家庭作业,需要在十进制,二进制和十六进制之间进行三向转换。我需要帮助的功能是将十进制转换为十六进制。我几乎不了解十六进制,但是如何将十进制转换为十六进制。我需要一个接受并返回的函数。不幸的是我没有此功能的任何草稿,我完全迷路了。我只有这个。 另外,我不能使用诸如Integer.toHexString()之类的预制函数或任何其他东西,我需要真正地制作算法,否则我什么都不会学。 问

  • 我试图在PHP中从ASCII转换为十六进制,但得到的结果与一些可用的在线工具不同。我知道我正在寻找的结果,所以在线工具的结果似乎是正确的,我的代码是错误的,但我无法找出原因。 我的剧本: 错在哪里?

  • Python3 实例 以下代码用于实现十进制转二进制、八进制、十六进制: # -*- coding: UTF-8 -*- # Filename : test.py # author by : www.runoob.com # 获取用户输入十进制数 dec = int(input("输入数字:")) print("十进制数为:", dec) print("转换为二进制为:", bin(dec

  • 我需要转换十六进制- 当我运行这个错误实际上是显示我需要的值但我不能得到它 groovy.lang.的方法:静态java.lang.我nteger.parseInt()适用于参数类型:(java.math.大整数,java.lang.整数)值:[28855032353026779507009821653742961358,...]可能的解决方案:parseInt(java.lang.String,