我将laravel时区设置为“格林尼治标准时间”前5:30小时的“亚洲/加尔各答”。 当我正在分派工作时,工作将在分派5:30小时后开始,因为所有客户都来自同一时区。此外,它显示在5:30之前可用。就像我将当前时间是3:30设置为4:30开始时一样,工作延迟要花5:30个小时才能从10:00开始。
我尝试设置Linux,laravel时区,php artisan config:cache,但仍要提前5:30小时。
我的代码:
$diff = strtotime($start_time) - strtotime($current_datetime);
$job_delay_hour = date("H", $diff);
$job_delay_minute = date("i", $diff);
$job_delay_second = date("s", $diff);
$job_id = $this->dispatch(($job)
->onQueue('splitter')
->delay(now()->addHour($job_delay_hour)->addMinutes($job_delay_minute)->addSeconds($job_delay_second)));
答案 0 :(得分:0)
已修复
$job_id = $this->dispatch(($job)
->onQueue('splitter')->delay($diff);
答案 1 :(得分:0)
您可以使用Carbon实例获取特定日期。有关Laravel v6.x的完整示例。应该也适用于旧版本:
public function store() {
// some stuff
// after 10 minutes
$on = \Carbon\Carbon::now()->addMinutes(10);
dispatch(new \App\Jobs\SomeJob(...$someVariables))->delay($on);
}