如何解决Laravel 如何让条件检查数据按时发送
我尝试过,但没有成功。
我的代码:
@if (Carbon\Carbon::parse($tugas->created_at)->toDateString() < Carbon\Carbon::parse($sub->deadline)->toDateString())
@if (Carbon\Carbon::parse($tugas->created_at)->toTimeString() < Carbon\Carbon::parse($sub->deadline)->toTimeString())
<td class="table-success">On time</td>
@else
<td class="table-danger">late</td>
@endif
@else
<td class="table-danger">late</td>
@endif
解决方法
Date 实例(以及 Carbon 实例)可以在不转换为字符串的情况下进行比较:
@if (new \Carbon\Carbon($tugas->created_at) < new \Carbon\Carbon($sub->deadline))
<td class="table-success">On time</td>
@else
<td class="table-danger">late</td>
@endif
然后确保所有这些实例都在同一时区以避免出现意外。
,默认情况下,created_at
应该已经被转换为 Carbon,所以我建议对 deadline
执行相同的操作。
class Sub extends Model
{
protected $casts = [
'deadline' => 'datetime'
];
}
您无法真正比较日期字符串。它们必须是碳对象。 Carbon 提供了比较方法:
@if ($tugas->created_at->isBefore($sub->deadline))
@if (Carbon\Carbon::parse($tugas->created_at)->toTimeString() < Carbon\Carbon::parse($sub->deadline)->toTimeString())
<td class="table-success">On time</td>
@else
<td class="table-danger">late</td>
@endif
@else
<td class="table-danger">late</td>
@endif
我想,第二个比较现在有些过时了,所以可以缩短为:
@if ($tugas->created_at->isBefore($sub->deadline))
<td class="table-success">On time</td>
@else
<td class="table-danger">late</td>
@endif
,
Carbon::now()->lessThan(Carbon::now()->subMinute()) // false
这是日期比较
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。