我有以下关于同一天交易的数据(PHP):
交易 ID 日期/时间
111-11111 05:50:07
211-21111 06:02:58
241-21311 06:43:00
255-26711 07: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')
);
}
基本上,它采用第一条记录并将其用作基线,然后遍历其他记录并检查它们是否在第一条记录的一小时内。