检查任何日期是否超过 5 年
Check if any date is older than 5 years
我正在努力找出实现目标的最佳方法。我正在遍历一些涉及一组日期的数据
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 年?
谢谢
试试这个。
<?
$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;
}
}
我正在努力找出实现目标的最佳方法。我正在遍历一些涉及一组日期的数据
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 年?
谢谢
试试这个。
<?
$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;
}
}