Search code examples
phplaravellaravel-5timezonelaravel-5.3

Change TimeZone dynamically in laravel


In my project there is drop-down of time zones(PT,CST etc), when Admin changes the timezone from drop-down the admin panel reflects the timezone from the selected drop down.
How to change Config/app.php "timezone"( Application Timezone) according to the selected option.


Solution

  • You can use Laravel helper function config to set timezone. However, this will affects only the request you will receive.

    config(['app.timezone' => $timezone]);
    

    If your goal is to change once the timezone and run on every request then what about saving the changed timezone in DB or in a file. Then, write a query for DB or read a file in app/config.php and change the value of index timezone in a file.

    For example (file example):

    When you changed the timezone it saves in a file.

    file_put_contents("path/to/file", $timezone);
    

    And, in app/config.php

    $timezone= file_get_contents("path/to/file");
    return [
     . . .   
        'timezone' => $timezone,
     . . .
    ]