PHP合并JSON数组并添加时间的技巧
时间:2025-10-11 08:27:30 311浏览 收藏
学习知识要善于思考,思考,再思考!今天golang学习网小编就给大家带来《PHP合并JSON数组并添加时间的实用方法》,以下内容主要包含等知识点,如果你正在学习或准备学习文章,就都不要错过本文啦~让我们一起来看看吧,能帮助到你就更好了!

本文旨在帮助开发者掌握如何使用PHP处理从数据库获取的JSON数组数据,并在此基础上,通过计算时间差,将“时间前”的概念整合到原始JSON数组中,最终生成包含id、CreatedAt和Time字段的JSON数据,以便在应用程序中更友好的展示评论时间。
在PHP中,处理JSON数据并对其进行修改是一项常见的任务。以下是如何将时间信息合并到从数据库获取的JSON数组中的详细步骤。
1. 获取JSON数据
首先,从数据库获取数据并将其编码为JSON格式。假设你已经有了一个名为 $CommentTime 的数组,它包含了从数据库中提取的评论数据。
$CommentTime= $this->M_main->GetFeedsCommentTime($FeedId); echo json_encode($CommentTime);
这段代码将 $CommentTime 数组转换为JSON字符串并输出。 $CommentTime 数组的结构如下:
[
{"id":"475","CreatedAt":"1636953999"},
{"id":"474","CreatedAt":"1636953988"},
{"id":"473","CreatedAt":"1636953977"}
]2. 遍历数组并计算时间差
接下来,使用 foreach 循环遍历数组,并计算每条评论的“时间前”表示。关键在于使用 &$cmt 引用传递,这样可以直接修改原始数组中的元素。
foreach($CommentTime as &$cmt) {
$CreatedAt = $cmt['CreatedAt'];
$PostedAts = $CreatedAt;
$time_ago = $PostedAts;
$cur_time = time();
$time_elapsed = $cur_time - $time_ago;
$seconds = $time_elapsed ;
$minutes = round($time_elapsed / 60 );
$hours = round($time_elapsed / 3600);
$days = round($time_elapsed / 86400 );
$weeks = round($time_elapsed / 604800);
$months = round($time_elapsed / 2600640 );
$years = round($time_elapsed / 31207680 );
// Seconds
if($seconds <= 60){
$PostedTime= "just now";
}
//Minutes
else if($minutes <=60){
if($minutes==1){
$PostedTime= "one minute ago";
} else{
$PostedTime= "$minutes minutes ago";
}
}
//Hours
else if($hours <=24){
if($hours==1){
$PostedTime= "an hour ago";
}else{
$PostedTime= "$hours hrs ago";
}
}
// 将计算出的时间信息添加到数组元素中
$cmt['Time'] = $PostedTime;
}3. 输出结果
现在,$CommentTime 数组已经包含了 Time 字段,你可以将其编码为JSON并输出。
echo json_encode($CommentTime);
输出结果如下:
[
{"id":"475","CreatedAt":"1636953999","Time":"5 minutes ago"},
{"id":"474","CreatedAt":"1636953988","Time":"10 minutes ago"},
{"id":"473","CreatedAt":"1636953977","Time":"15 minutes ago"}
]注意事项:
- 时区问题: time() 函数返回的是服务器的当前时间戳。如果你的数据库中的时间戳存储的是UTC时间,你需要先将其转换为服务器所在的时区,再进行时间差计算,以保证结果的准确性。
- 数据类型: 确保 $CreatedAt 字段的值是整数类型的时间戳。如果它是字符串类型,你需要使用 intval() 或 (int) 将其转换为整数。
- 性能优化: 如果你需要处理大量的评论数据,可以考虑使用更高效的时间计算方法,例如使用 DateTime 类。
总结:
通过使用 foreach 循环和引用传递,我们可以方便地修改JSON数组中的元素,并将计算出的时间信息添加到数组中。这种方法简单易懂,适用于大多数情况。 记得在实际应用中处理时区和数据类型,以确保结果的准确性。
以上就是《PHP合并JSON数组并添加时间的技巧》的详细内容,更多关于的资料请关注golang学习网公众号!
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
333 收藏
-
132 收藏
-
443 收藏
-
416 收藏
-
333 收藏
-
240 收藏
-
353 收藏
-
289 收藏
-
332 收藏
-
251 收藏
-
186 收藏
-
336 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习