Настройка базы часовых поясов Laravel на системный часовой пояс в Laravel 5 - PullRequest
0 голосов
/ 26 ноября 2018

Я пытаюсь установить конфигурацию часового пояса на config/app.php на основе моего системного времени на CentOS VM.

'timezone' => 'America/New_York',

Я попытался добавить эти несколько строк кода поверх config/app.php

// Try #1
// $timeZone = shell_exec("date +\"%Z %z\" | awk '{print $1}'");
// dd($timeZone);  I got "EST\n"

// Try #2
// session_start();
// $timezone = $_SESSION['time'];
// dd($timeZone);

// Try #3
// $timezone = date_default_timezone_get()
// dd($timeZone);

Кажется, что ни один из вышеперечисленных вариантов не работает.

Как можно отладить это дальше?

1 Ответ

0 голосов
/ 26 ноября 2018

Вы можете попробовать это:

$now = new DateTime();
$tz = $now->getTimezone();
$tz = $tz->getName();

Если вышеперечисленное не работает, я предлагаю вам взглянуть на Углерод ;

Ваш файл config/app.php будет выглядеть примерно так:

<?php
# include Carbon
use Carbon\Carbon;

return [
    . 
    .
    . 
    |--------------------------------------------------------------------------
    | Application Timezone
    |--------------------------------------------------------------------------
    |
    | Here you may specify the default timezone for your application, which
    | will be used by the PHP date and date-time functions. We have gone
    | ahead and set this to a sensible default for you out of the box.
    |
    */

    'timezone' => Carbon::createFromTimestamp(0, 'America/New_York')->timezone->getName(),
    .
    . 
    .

];

Чтобы проверить вывод из вышеперечисленного, не бросайте dump dd() внутри вашего app/config.php, который вы можете сделатьновый маршрут:

Route::get('/test-timezone', function() {
    dd(\Config::get('app.timezone'));
});

Обязательно очистите кеш, чтобы увидеть изменения: php artisan config:cache

...