使用array_filter过滤日期字符串数组

时间:2014-07-13 17:32:21

标签: php arrays date filter

我有一组日期字符串:

Array
(
    [0] => 2014-03-24
    [1] => 2014-03-18
    [2] => 2014-06-08
    [3] => 2014-08-21
    [4] => 2014-09-11
)

我想使用array_filter函数过滤掉特定月份和年份之前的所有条目:

array_filter($array, "newer_than");

function newer_than($var)
{
    return (strtotime($var) > CURRENT MONTH AND YEAR);
}

任何帮助将不胜感激

由于

2 个答案:

答案 0 :(得分:5)

strtotime()非常聪明,可以获得当月的UNIX时间戳:

$thisMonth = strtotime('first day of ' . date('F Y'));

$array2 = array_filter($array1, function ($val) use ($thisMonth) {
    return strtotime($val) > $thisMonth;
});

答案 1 :(得分:1)

如果您想指定不是当前月份和年份的月份和年份,您可以执行以下操作:

    <?
    $array[] = "2014-03-24";
    $array[] = "2014-03-18";
    $array[] = "2014-06-08";
    $array[] = "2014-08-21";
    $array[] = "2014-09-11";

    $array = array_filter($array, "newer_than");

    function newer_than($var)
    {
            $specificMonth = 8;
            $specificYear = 2014;

            return (strtotime($var) > mktime(0,0,0,$specificMonth,1,$specificYear) );
    }

    ?>