How can a PHP script efficiently count and categorize data based on specific time criteria?

To efficiently count and categorize data based on specific time criteria in PHP, you can use the DateTime class to compare timestamps and categorize data accordingly. By looping through your data and checking if each entry falls within the specified time criteria, you can increment counters or add the data to specific categories.

// Sample data array
$data = [
    ['timestamp' => '2022-01-15 08:30:00', 'category' => 'A'],
    ['timestamp' => '2022-01-15 12:45:00', 'category' => 'B'],
    ['timestamp' => '2022-01-16 10:15:00', 'category' => 'A'],
    // Add more data entries here
];

// Define time criteria
$start = new DateTime('2022-01-15 00:00:00');
$end = new DateTime('2022-01-15 23:59:59');

// Initialize counters and categories
$countA = 0;
$countB = 0;
$categoryA = [];
$categoryB = [];

// Loop through data and categorize based on time criteria
foreach ($data as $entry) {
    $timestamp = new DateTime($entry['timestamp']);
    if ($timestamp >= $start && $timestamp <= $end) {
        if ($entry['category'] === 'A') {
            $countA++;
            $categoryA[] = $entry;
        } elseif ($entry['category'] === 'B') {
            $countB++;
            $categoryB[] = $entry;
        }
    }
}

// Output results
echo "Count of category A: $countA\n";
echo "Category A entries:\n";
print_r($categoryA);

echo "Count of category B: $countB\n";
echo "Category B entries:\n";
print_r($categoryB);