如何比较两个 Carbon 时间戳?
How to compare two Carbon Timestamps?
我有两个时间戳,我创建的 edited_at 和 created_at(Laravel 的)...
在数据库中,两者都有时间戳类型和默认值 0000-00-00 00:00:00... 但是
var_dump(edited_at variable)
正在给出字符串。而 var_dump(created_at variable)
是 object/Carbon。这些时间戳有什么问题?
我必须在使用格式 ('U') 转换为整数后比较两者。我只能在 Carbon Object 上调用这个方法。我该怎么做?
首先,Eloquent 自动将其时间戳(created_at
、updated_at
)转换为碳对象。您可以只使用 updated_at
来获得这个不错的功能,或者在 $dates
属性:
的模型中指定 edited_at
protected $dates = ['edited_at'];
现在回到你的实际问题。 Carbon 有一堆比较函数:
eq()
等于
ne()
不等于
gt()
大于
gte()
大于等于
lt()
小于
lte()
小于或等于
用法:
if($model->edited_at->gt($model->created_at)){
// edited at is newer than created at
}
首先,使用内置 eloquent 功能转换时间戳,如 所述。
那你就可以直接用Carbon的min()
或max()
函数来比较了。例如:
$dt1 = Carbon::create(2012, 1, 1, 0, 0, 0);
$dt2 = Carbon::create(2014, 1, 30, 0, 0, 0);
echo $dt1->min($dt2);
这将 echo
两个日期中的较小者,在本例中为 $dt1
。
Carbon 有一堆比较函数有助记名:
- 等于()
- notEqualTo()
- 大于()
- 大于或等于()
- 小于()
- lessThanOrEqualTo()
用法:
if($model->edited_at->greaterThan($model->created_at)){
// edited at is newer than created at
}
Valid for nesbot/carbon 1.36.2
如果您不确定自己使用的 Carbon 版本,运行 这个
$composer show "nesbot/carbon"
这就是我比较 2 个日期的方式,now() 和 table
中的一个日期
@if (\Carbon\Carbon::now()->lte($item->client->event_date_from))
.....
.....
@endif
应该可以正常工作。
我用过Carbon提供的比较函数
我有两个时间戳,我创建的 edited_at 和 created_at(Laravel 的)... 在数据库中,两者都有时间戳类型和默认值 0000-00-00 00:00:00... 但是
var_dump(edited_at variable)
正在给出字符串。而 var_dump(created_at variable)
是 object/Carbon。这些时间戳有什么问题?
我必须在使用格式 ('U') 转换为整数后比较两者。我只能在 Carbon Object 上调用这个方法。我该怎么做?
首先,Eloquent 自动将其时间戳(created_at
、updated_at
)转换为碳对象。您可以只使用 updated_at
来获得这个不错的功能,或者在 $dates
属性:
edited_at
protected $dates = ['edited_at'];
现在回到你的实际问题。 Carbon 有一堆比较函数:
eq()
等于ne()
不等于gt()
大于gte()
大于等于lt()
小于lte()
小于或等于
用法:
if($model->edited_at->gt($model->created_at)){
// edited at is newer than created at
}
首先,使用内置 eloquent 功能转换时间戳,如
那你就可以直接用Carbon的min()
或max()
函数来比较了。例如:
$dt1 = Carbon::create(2012, 1, 1, 0, 0, 0);
$dt2 = Carbon::create(2014, 1, 30, 0, 0, 0);
echo $dt1->min($dt2);
这将 echo
两个日期中的较小者,在本例中为 $dt1
。
Carbon 有一堆比较函数有助记名:
- 等于()
- notEqualTo()
- 大于()
- 大于或等于()
- 小于()
- lessThanOrEqualTo()
用法:
if($model->edited_at->greaterThan($model->created_at)){
// edited at is newer than created at
}
Valid for nesbot/carbon 1.36.2
如果您不确定自己使用的 Carbon 版本,运行 这个
$composer show "nesbot/carbon"
这就是我比较 2 个日期的方式,now() 和 table
中的一个日期@if (\Carbon\Carbon::now()->lte($item->client->event_date_from))
.....
.....
@endif
应该可以正常工作。 我用过Carbon提供的比较函数