使用DateTime的总持续时间

时间:2014-03-13 20:44:13

标签: php datetime

我今天已经根据一些问题提出了几个问题,这些问题涉及几个DateTime值之间的平均时间和总持续时间。在计算此持续时间时,先前建议我使用DateTime对象定义如下来存储总持续时间:

$totalTime = new DateTime("@0");

我的问题是 - 实际上最好以这种方式计算总持续时间吗?是否可以计算几个事件的总持续时间?

编辑:添加的时间是date_diff()计算的持续时间,因此它们是DateInterval个对象(可以很容易地添加到DateTime个对象中)。

1 个答案:

答案 0 :(得分:1)

从目前为止我能够收集到的内容中,似乎有两种“更好”的方法来做这种事情。

  1. 在使用DateTime对象的同时,将所有时间添加为秒。这允许简单的整数加/减/用于计数数据,避免潜在的DateTime错误/怪异行为。最后,只需将秒转换为DateTime格式即可输出。

  2. 如果从数据库中提取(就像我一样),只需使用SQL的SUMTIME_DIFF等可用功能直接从数据库中计算。从那里,您将它拉入PHP中的DateTime对象,而不必修改该对象,输出结果。这解决了我自己的超过23个小时的问题(如果在PHP中添加DateTime对象,那将会回到午夜。)

  3. 但我绝对愿意接受其他建议。