所以我有一个Laravel应用程序,我们通过比较用户时区中的当前时间与数据库中存储的时间到期日期时间来确定时间是否已经过去了。所以这是我的代码。
测试代码
$staff = Staff::find(1);
$carbon = Carbon::now($staff->user->timezone);
$carbon->subHour(1);
$staff->status_exp = $carbon->toDateTimeString();
$processor = new Processor($staff);
$status = $processor->isExpired();
$this->assertTrue($status);
应用程序代码。 Class有下面使用的属性名称人员。
public function isExpired()
{
$now = Carbon::now($this->staff->user->timezone);
if($now->greaterThan(Carbon::parse($this->staff->status_exp)))
{
return true;
}
return false;
}
编辑1: 我在手动测试后发现逻辑是正确的。