我正在尝试找出实现某个目标的最佳方法。我正在遍历一些涉及一组日期的数据
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年前的,还为今天创建了一个date对象。
$moreThanFiveYears = false;
$now = Carbon::now();
现在我想弄清楚的是如何执行实际的检查?当我尝试上面的方法时,它会抱怨,因为$now
与我的其他日期的格式不一样。我曾尝试向它添加一种格式,但它只生成类似20190219
的内容,而不是原始日期生成的额外数据。
那么,如何循环所有日期以确保至少有一个日期大于5年呢?
谢谢
3条答案
按热度按时间e37o9pze1#
用
subYears()
得到五年前的数据,然后用greaterThan()
比较它们。h7appiyu2#
试试这个。
jjjwad0x3#
由于您使用的是碳,因此可以使用差值方法,该方法允许您轻松计算两个日期之间的差值(任何单位):