Datetime 在php中计算一小时内放置的事务数

Datetime 在php中计算一小时内放置的事务数,datetime,timestamp,php,Datetime,Timestamp,Php,我有以下关于同一天进行的交易的数据: Transaction idDate/Time 如果所有这些事务都在同一个小时内完成,我如何检查?我在这里有点迷路,需要指引方向 谢谢。我怀疑您是否仍在寻找此功能,但对于其他可能正在寻找类似功能的人,以下是我目前所拥有的功能 <?php $transactions = array( '111-11111' => '05:50:07', '211-21111' => '06:02:58', '241-21311' =

我有以下关于同一天进行的交易的数据:

Transaction idDate/Time 如果所有这些事务都在同一个小时内完成,我如何检查?我在这里有点迷路,需要指引方向


谢谢。

我怀疑您是否仍在寻找此功能,但对于其他可能正在寻找类似功能的人,以下是我目前所拥有的功能

<?php

$transactions = array(
    '111-11111' => '05:50:07',
    '211-21111' => '06:02:58',
    '241-21311' => '06:43:00',
    '255-26711' => '07:58:00'
);

list($hour, $minutes, $seconds) = explode(':', array_shift($transactions));
$first   = (new DateTime())->setTime($hour, $minutes, $seconds);
$endtime = $first->add(new DateInterval('PT1H'));
foreach ($transactions as $key => $time) {
    list($hour, $minutes, $seconds) = explode(':', $time);
    $datetime = (new DateTime())->setTime($hour, $minutes, $seconds);
    printf("Transaction ID: %s, Date/Time: %s, Within an hour: %s<br>\n",
        $key,
        $time,
        ($datetime < $endtime ? 'Yes' : 'No')
    );
}
基本上,它将第一条记录作为基线,然后循环其他记录并检查它们是否在第一条记录的一小时内


它是一个txt文件,可以很容易地从中检索。在一个小时内,它是指从07:00-07:59开始,还是从07:33-08:32开始,它也应该包括07:33-08:32。。 211-2111106:02:58 241-2131106:43:00 255-2671107:58:00
<?php

$transactions = array(
    '111-11111' => '05:50:07',
    '211-21111' => '06:02:58',
    '241-21311' => '06:43:00',
    '255-26711' => '07:58:00'
);

list($hour, $minutes, $seconds) = explode(':', array_shift($transactions));
$first   = (new DateTime())->setTime($hour, $minutes, $seconds);
$endtime = $first->add(new DateInterval('PT1H'));
foreach ($transactions as $key => $time) {
    list($hour, $minutes, $seconds) = explode(':', $time);
    $datetime = (new DateTime())->setTime($hour, $minutes, $seconds);
    printf("Transaction ID: %s, Date/Time: %s, Within an hour: %s<br>\n",
        $key,
        $time,
        ($datetime < $endtime ? 'Yes' : 'No')
    );
}