PHP中如何将hh:ss格式时长转换为带小数的小时数?
解决hh:ss转小时小数格式的PHP方法
核心逻辑很简单:把分钟部分换算成小时的小数(1分钟=1/60小时),再和小时部分相加即可。
实现代码
function convertHhSsToDecimal($timeStr) { // 分割小时与分钟 list($hours, $minutes) = explode(':', $timeStr); // 计算小数形式的小时数 return (int)$hours + ((int)$minutes / 60); } // 测试用例 echo convertHhSsToDecimal('36:15'); // 输出 36.25 echo convertHhSsToDecimal('36:30'); // 输出 36.5 echo convertHhSsToDecimal('36:45'); // 输出 36.75
补充说明
- 如果需要固定小数位数(比如保留两位),可以用
round()或number_format()处理返回值,比如:return round((int)$hours + ((int)$minutes / 60), 2); - 确保输入的
$timeStr格式严格为hh:ss,如果有格式不规范的情况,可以先做校验(比如用正则匹配/^\d+:\d+$/)
内容的提问来源于stack exchange,提问作者cornacum
相关产品推荐
相关产品推荐

