【发布时间】:2016-01-19 15:17:08
【问题描述】:
我正在为内部构建一个监控系统。它需要能够计算 4 个日期的平均值,然后将它们添加到数组的最后一个元素(如下),以计算出下一个文件的预期时间。
所以我有一个看起来像这样的数组
Array
(
[0] => 2016-01-05 12:53
[1] => 2016-01-05 13:05
[2] => 2016-01-05 14:33
[3] => 2016-01-07 16:07
)
我想要做的是获取数组中所有这些日期的平均值。 然后,我需要能够将此平均值添加到如下所示的另一个日期以锻炼预期日期。
2016-01-07 16:07 + Average
我希望能够使用 PHP 来实现这一点。 我希望我已经解释得够清楚了吗?
我已经尝试过了,但今年的日期很奇怪,比如 7586
$datesLoaded = array();
$intervals = array();
$expected = array();
foreach ($rows as $row) {
$datesLoaded[] = $row['mydate'];
}
if (empty($datesLoaded)) {
echo "empty array";
} else {
for ($i=0; $i < count($datesLoaded)-1; $i++) {
$firstFile = strtotime($datesLoaded[$i]);
$nextFile = strtotime($datesLoaded[$i+1]);
$interval = $nextFile-$firstFile;
$intervals[] = $interval;
}
$numOfElements = count($intervals);
$sumOfIntervals = array_sum($intervals);
$meanTime = $sumOfIntervals / $numOfElements;
$lastDate = array_pop($datesLoaded);
$expectedTime = strtotime($lastDate) + $meanTime;
$expectedDate = new DateTime("@$expectedTime");
$expectedDateFormat = $expectedDate->format('j\t\h F - G : i');
$expected['expectedTime'] = $expectedDateFormat;
echo json_encode($expected);
这里是回显的变量
(
[0] => 720
[1] => 5280
[2] => 178440
)
num of elements - 3
sum of intervals - 184440
mean time - 61480
last date - 2016-01-07 16:07
expected time - 1452244300
【问题讨论】:
-
你能分享你的尝试吗?
-
您是指所有日期之间的平均时间间隔?
-
@cale_b 查看编辑。
-
@AbraCadaver 抱歉,日期的平均日期/时间。
-
这是什么意思?给定您的数组的
average是什么?