【发布时间】:2013-03-01 07:41:57
【问题描述】:
我有这个来自数据库的数据。
+----+------------+----------+
| id | date time | duration |
+----+------------+----------+-----------
| 3 | 2012-12-20 09:28:53 | ? |
| 1 | 2012-12-20 19:44:10 | ? |
| 2 | 2012-12-23 16:25:15 | |
| 4 | 2012-12-23 18:26:16 | |
| 4 | 2012-12-24 08:01:27 | |
| 5 | 2012-12-29 20:57:33 | |
| 5 | 2012-12-29 20:57:33 | |
+----+------------+----------+------------
- id
#1的持续时间应等于日期 id#2- id #1 - id
#2的持续时间应等于日期 id#3- id #2
如果id相同,则会添加。
对不起,这只是我的想法,在 php 中仍然很新,所以我不知道如何开始。 任何帮助表示赞赏。 谢谢
已编辑按日期排序。第 1 条记录的持续时间或总时间 = 第 2 条记录 - 第 1 条记录
【问题讨论】:
-
尝试将日期转换为内部格式(您会看到它是 Unix 时间戳或类似的东西)。在这种格式中,您只需减去两个日期/时间,就可以得到它们之间的差异(以秒为单位)。
-
我已经使用 strtotime 进行转换,但我的问题是因为这是从数据库中获取的,如何将它放在 id 1、id 2 等的持续时间列中。请指导我,也许它是嵌套循环,但我仍然不知道该怎么做。再次感谢
-
好吧,一旦你确实有这样的时间,你只需将当前减去前一个,然后将它们放入表中的相应位置。是的,您需要遍历表,并按行进行。
-
我不明白你的要求。您想更改 id#1、id#2 的持续时间值还是什么?
-
我只有查询中的表(fetch_array)但没有持续时间,因为我不知道如何放置它。我还是个循环新手,所以我真的不知道如何表达。