Вопрос о работе сервера date и laravel cron - PullRequest
0 голосов
/ 12 ноября 2019

Я только что узнал о заданиях cron на сервере и larave cron, в своих приложениях laravel я установил часовой пояс в файле .env следующим образом:

APP_TIMEZONE='Europe/Madrid'

Теперь в моем Ubuntu VPS я выполнил команду

date

И заметил, что написано UTC на час раньше моего местного времени (на час меньше извинения за английский), теперь у меня два вопроса:

Когда я запускаю задание cron из laravel, используякоманда schedule, в какое время приложение учитывает выполнение команд, мое время VPS (UTC, на час меньше) или время моего приложения laravel (Европа / Мадрид)?

Я хочу зафиксировать свое время VPSтак же, как и мое местное время (его можно изменить на UTC + 1), как я могу изменить дату / часовой пояс? Это хорошая идея, чтобы сделать это?

1 Ответ

0 голосов
/ 12 ноября 2019

Laravel Scheduler будет использовать часовой пояс, установленный в файле env, я считаю, что вы должны сохранить конфигурацию часового пояса в приложении, чтобы вам не пришлось беспокоиться об этом на новых серверах.

сИсточник Laravel Illuminate / Foundation / Console / Kernel.php

/**
     * Get the timezone that should be used by default for scheduled events.
     *
     * @return \DateTimeZone|string|null
     */
    protected function scheduleTimezone()
    {
        $config = $this->app['config'];
        return $config->get('app.schedule_timezone', $config->get('app.timezone'));
    }

Приоритет app.schedule_timezone и откат к стандартному app.timezone.

В качестве альтернативы вы можете переопределить эту функцию: https://laravel.com/docs/5.8/scheduling#timezones

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...