Метод timezone
Метод timezone применяется к задаче планировщика
и позволяет задать временную зону, относительно которой
будет вычисляться время выполнения задачи. Первым
параметром передаётся строка с названием часового пояса,
например, 'Europe/Moscow' или 'America/New_York'. Если
часовой пояс не указан, используется значение из
конфигурации приложения (файл config/app.php).
Синтаксис
<?php
Schedule::command($command)->timezone($timezone);
?>
Пример
Давайте запланируем выполнение команды каждый день в 9 утра по московскому времени:
<?php
use Illuminate\Support\Facades\Schedule;
Schedule::command('reports:generate')
->dailyAt('09:00')
->timezone('Europe/Moscow');
?>
Пример
Давайте запланируем выполнение задачи каждый час в нулевую минуту по времени Нью-Йорка:
<?php
use Illuminate\Support\Facades\Schedule;
Schedule::call(function () {
echo "Task executed at hourly interval.";
})
->hourly()
->timezone('America/New_York');
?>
Пример
Давайте запланируем выполнение задания по расписанию CRON с учётом временной зоны Азии:
<?php
use Illuminate\Support\Facades\Schedule;
Schedule::command('import:data')
->cron('0 14 * * *')
->timezone('Asia/Tokyo');
?>
Пример
Давайте запланируем выполнение работы дважды в день по времени Лондона:
<?php
use Illuminate\Support\Facades\Schedule;
Schedule::job(new App\Jobs\SyncDatabase)
->twiceDaily(8, 20)
->timezone('Europe/London');
?>
Результат выполнения кода:
"Job scheduled at 8:00 and 20:00 in Europe/London timezone."
Пример
Давайте переопределим часовой пояс для существующей задачи, используя цепочку методов:
<?php
use Illuminate\Support\Facades\Schedule;
Schedule::command('send:notifications')
->weekly()
->mondays()
->at('10:30')
->timezone('Pacific/Auckland');
?>