我今天已经根据一些问题提出了几个问题,这些问题涉及几个DateTime值之间的平均时间和总持续时间。在计算此持续时间时,先前建议我使用DateTime对象定义如下来存储总持续时间:
$totalTime = new DateTime("@0");
我的问题是 - 实际上最好以这种方式计算总持续时间吗?是否可以计算几个事件的总持续时间?
编辑:添加的时间是date_diff()
计算的持续时间,因此它们是DateInterval
个对象(可以很容易地添加到DateTime
个对象中)。
答案 0 :(得分:1)
从目前为止我能够收集到的内容中,似乎有两种“更好”的方法来做这种事情。
在使用DateTime
对象的同时,将所有时间添加为秒。这允许简单的整数加/减/用于计数数据,避免潜在的DateTime错误/怪异行为。最后,只需将秒转换为DateTime
格式即可输出。
如果从数据库中提取(就像我一样),只需使用SQL的SUM
,TIME_DIFF
等可用功能直接从数据库中计算。从那里,您将它拉入PHP中的DateTime
对象,而不必修改该对象,输出结果。这解决了我自己的超过23个小时的问题(如果在PHP中添加DateTime
对象,那将会回到午夜。)
但我绝对愿意接受其他建议。