歌曲时长格式化:分秒毫秒转换
2025-02-28 19:33:04
0浏览
收藏
本文介绍了如何将歌曲时长(以秒为单位,包含毫秒)转换为分钟、秒和毫秒并格式化输出。文章提供PHP代码示例,实现从JSON数据中提取歌曲时长,并进行健壮的错误处理和数据验证,例如处理JSON解码错误和非数字时间值。代码改进包括更精确的毫秒计算、更清晰的格式化输出,以及更易于理解和维护的代码结构,最终输出格式为"分:秒.毫秒"。 通过学习本文,您可以轻松掌握歌曲时长格式化的方法,并提升代码的健壮性和可读性。
代码片段展示了如何将歌曲时长(以秒为单位,可能包含毫秒)转换为分钟、秒和毫秒的格式化输出。让我们改进这段代码,使其更健壮、更易读,并处理潜在的错误。
<?php $jsonString = '[{"time": "123.456", "lineLyric": "第一句歌词"}, {"time": "246.789", "lineLyric": "第二句歌词"}]'; // 示例JSON数据 $jsonData = json_decode($jsonString, true); if (json_last_error() !== JSON_ERROR_NONE) { die("JSON解码错误: " . json_last_error_msg()); // 处理JSON解码错误 } foreach ($jsonData as $item) { $timeInSeconds = (float)$item['time']; // 直接将time转换为浮点数 if (!is_numeric($timeInSeconds)) { echo "无效的时间格式: {$item['time']}\n"; // 处理非数字时间值 continue; // 跳过当前项目 } $minutes = floor($timeInSeconds / 60); $seconds = floor($timeInSeconds % 60); $milliseconds = round(($timeInSeconds * 1000) % 1000); // 计算毫秒,并四舍五入 $formattedTime = sprintf('%d:%02d.%03d', $minutes, $seconds, $milliseconds); // 使用.作为毫秒分隔符 echo "[$formattedTime]{$item['lineLyric']}\n"; } ?>
改进说明:
- 错误处理: 添加了
json_last_error()
检查,以处理JSON解码错误。如果解码失败,会显示错误消息并终止脚本。 - 数据类型转换: 直接使用
(float)$item['time']
将time
字段转换为浮点数,简化代码并避免潜在的类型错误。 - 输入验证: 添加了
is_numeric()
检查,确保time
字段的值是数字。如果不是数字,则会输出错误消息并跳过该项目。 - 毫秒计算: 改进毫秒的计算方式,使用
round()
函数进行四舍五入,使其更精确。 - 格式化输出: 将毫秒分隔符改为
.
, 更符合常见的毫秒表示方式。
此改进后的代码更加稳健,能够处理各种情况,包括无效的JSON数据和非数字的时间值,并提供更清晰的错误提示。 它也更易于理解和维护。
今天带大家了解了的相关知识,希望对你有所帮助;关于文章的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

- 上一篇
- macOS最佳PHP集成环境推荐

- 下一篇
- Go语言MQTT证书:IPSAN加载及使用
查看更多
最新文章
-
- 文章 · php教程 | 6小时前 | php 数组键 array_key_exists() NULL值 isset()
- PHP大神必备!array_key_exists与isset区别深度解读
- 257浏览 收藏
-
- 文章 · php教程 | 6小时前 |
- PHP怎么解析MsgPack数据?超简单教程来啦!
- 357浏览 收藏
-
- 文章 · php教程 | 6小时前 |
- PHP高手进阶!数组合并的五种骚操作你掌握了吗?
- 423浏览 收藏
-
- 文章 · php教程 | 7小时前 |
- PHP解析XML的4种姿势,快来看看你用过几种
- 293浏览 收藏
-
- 文章 · php教程 | 7小时前 |
- PHP程序员必看!手把手教你搞定依赖注入实战
- 401浏览 收藏
-
- 文章 · php教程 | 7小时前 | php API 二维码 BaconQrCode EndroidQRCode
- PHP两行代码轻松搞定二维码生成,超简单教程来了!
- 285浏览 收藏
-
- 文章 · php教程 | 7小时前 | php Curl Http请求 file_get_contents SSL验证
- PHP大佬都纠结的file_get_contents还是cURL?谁更强一探究竟!
- 438浏览 收藏
-
- 文章 · php教程 | 8小时前 |
- PHP小白看过来!手把手教你用5个函数玩转TXT文本处理
- 231浏览 收藏
-
- 文章 · php教程 | 8小时前 | php 性能 解析 二进制数据 FlatBuffer
- PHP也能玩转FlatBuffer?手把手教你高效解析二进制数据!
- 445浏览 收藏
-
- 文章 · php教程 | 8小时前 |
- PHP怎么实现URL重写?手把手教你搞定伪静态规则
- 390浏览 收藏
-
- 文章 · php教程 | 8小时前 | 数组操作 PHP数组 array_filter array_merge array_unique
- PHP数组操作太麻烦?这10个小技巧助你玩得飞起!
- 251浏览 收藏
查看更多
课程推荐
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 508次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 484次学习
查看更多
AI推荐
-
- 茅茅虫AIGC检测
- 茅茅虫AIGC检测,湖南茅茅虫科技有限公司倾力打造,运用NLP技术精准识别AI生成文本,提供论文、专著等学术文本的AIGC检测服务。支持多种格式,生成可视化报告,保障您的学术诚信和内容质量。
- 96次使用
-
- 赛林匹克平台(Challympics)
- 探索赛林匹克平台Challympics,一个聚焦人工智能、算力算法、量子计算等前沿技术的赛事聚合平台。连接产学研用,助力科技创新与产业升级。
- 104次使用
-
- 笔格AIPPT
- SEO 笔格AIPPT是135编辑器推出的AI智能PPT制作平台,依托DeepSeek大模型,实现智能大纲生成、一键PPT生成、AI文字优化、图像生成等功能。免费试用,提升PPT制作效率,适用于商务演示、教育培训等多种场景。
- 110次使用
-
- 稿定PPT
- 告别PPT制作难题!稿定PPT提供海量模板、AI智能生成、在线协作,助您轻松制作专业演示文稿。职场办公、教育学习、企业服务全覆盖,降本增效,释放创意!
- 102次使用
-
- Suno苏诺中文版
- 探索Suno苏诺中文版,一款颠覆传统音乐创作的AI平台。无需专业技能,轻松创作个性化音乐。智能词曲生成、风格迁移、海量音效,释放您的音乐灵感!
- 102次使用
查看更多
相关文章
-
- PHP技术的高薪回报与发展前景
- 2023-10-08 501浏览
-
- 基于 PHP 的商场优惠券系统开发中的常见问题解决方案
- 2023-10-05 501浏览
-
- 如何使用PHP开发简单的在线支付功能
- 2023-09-27 501浏览
-
- PHP消息队列开发指南:实现分布式缓存刷新器
- 2023-09-30 501浏览
-
- 如何在PHP微服务中实现分布式任务分配和调度
- 2023-10-04 501浏览