检查日期是否超过5年

我正在尝试找出达成目标的最佳方法。我正在遍历一些涉及一组日期的数据

foreach ($fields['dates'] as $key => $dates) {
    $fields['dates'][$key]['datestring'] = Carbon::createFromFormat(
        'dmY',$dates['datestring']
    );
    var_dump($fields['dates'][$key]['datestring']);
}

上面的var_dump会产生类似以下的内容

object(Carbon\Carbon)#330 (3) { ["date"]=> string(26) "2019-08-08 12:41:00.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(3) "UTC" } object(Carbon\Carbon)#328 (3) { ["date"]=> string(26) "1987-08-08 12:41:00.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(3) "UTC" }

因此,在此之上,我创建了一个变量来确定至少一个日期是否超过5年。我还为今天创建了一个日期对象。

$moreThanFiveYears = false;
$now = Carbon::now();

现在我要弄清楚的是如何执行实际检查?当我尝试上述操作时,它抱怨是因为$now与我其他日期的格式不同。我曾尝试向其添加格式,但它只会生成类似20190219的格式,而不会生成原始日期生成的其他数据。

那么我该如何循环我的所有日​​期以确保至少一个大于5年?

谢谢

newer1106 回答:检查日期是否超过5年

尝试一下。

<?
$check_date = '2019-12-18 18:20:40';
if(strtotime($check_date) < strtotime('-5 year')){
 echo "YES";
}else{
echo "NO";
}
?>
,

五年前通过subYears()获取并通过greaterThan()进行比较。

$fiveYearsAgo = Carbon::now()->subYears(5);

foreach ($fields['dates'] as $key => $dates) {
    $fields['dates'][$key]['datestring'] = Carbon::createFromFormat(
        'dmY',$dates['datestring']
    );

    if ($fields['dates'][$key]['datestring']->greaterThan($fiveYearsAgo)) {
        $moreThanFiveYears = false;
    }
}
本文链接:https://www.f2er.com/2899123.html

大家都在问