首页 > 解决方案 > 在php中获取2个日期之间的信息

问题描述

我有一个看起来像这样的数组

$data =
        [
            [
                'date' => '2020-10-01',
                'product' => 'Product 1',
                'description' => 'Product 1',
            ],
            [
                'date' => '2020-11-01',
                'product' => 'Product 2',
                'description' => 'Product 2',
            ],
            [
                'date' => '2020-12-01',
                'product' => 'Product 3',
                'description' => 'Product 3',
            ],
            [
                'date' => '2021-01-01',
                'product' => 'Product 4',
                'description' => 'Product 4',
            ]
        ];

我想做的是获取两个日期之间的所有信息。例如,我想要 2021-01-01 和 2020-11-01 之间的所有内容,然后它将显示产品 2、产品 3 和产品 4

我不知道该怎么做

标签: php

解决方案


<?php
$data =
        [
            [
                'date' => '2020-10-01',
                'product' => 'Product 1',
                'description' => 'Product 1',
            ],
            [
                'date' => '2020-11-01',
                'product' => 'Product 2',
                'description' => 'Product 2',
            ],
            [
                'date' => '2020-12-01',
                'product' => 'Product 3',
                'description' => 'Product 3',
            ],
            [
                'date' => '2021-01-01',
                'product' => 'Product 4',
                'description' => 'Product 4',
            ]
        ];
        
$from = new DateTime('2020-11-11');
$to = new DateTime('2030-10-13');
        
foreach ($data as $d){
    $productDate = new DateTime($d['date']);
    if (($productDate >= $from) && ($productDate <= $to)){
        echo "is between";
        var_dump($d);
    }
        
}

推荐阅读