0

同じ日に行われたトランザクションに関する次のデータがあります (PHP):

トランザクション ID 日付/時刻
111-11111 05:50:07
211-21111 06:02:58
241-21311 06:43:00
255-26711 07:58:00

これらのトランザクションがすべて同じ時間 (1 時間) 以内に行われたかどうかを確認するにはどうすればよいですか? 私はここで少し道に迷っており、指示が必要です。

ありがとうございました。

4

1 に答える 1

0

あなたがまだこれを探しているとは思えませんが、似たようなものを探しているかもしれない他の人のために、これまでのところ私が持っているものがあります.

<?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')
    );
}

基本的に、最初のレコードを取得し、それをベースラインとして使用してから、他のレコードをループして、最初のレコードから 1 時間以内にあるかどうかを確認します。

実際に見る

于 2014-01-04T04:16:40.463 に答える