phpdatetimelaravelphp-carbon

Carbon now time wrong


I just started using the Carbon extension (seems pretty sweet so far), but am confused on the Carbon::now() function. According to the docs, it seems as though this function should reflect the current time in the users current timezone, however, I seem to get a time that is an hour ahead of GMT.

i.e. Carbon::now() says 2015-01-01 17:26:46 when I am on PST and it is actually currently 2015-01-01 08:26:46.

Do I have to detect and put in a users local timezone for all instances?

What gives? (I very well may have a fundamental misunderstanding of how a website gets a users local time)


Solution

  • This appears to be because the timezone of your server is different to your own.

    This could be caused by:

    The server's timezone appears to be CET (Central European Time) which is +1 GMT, as you described.

    To fix this, you should change the timezone in your php.ini file (instructions are from the link):

    1. Open your php.ini file
    2. Add the following line of code to top of your php.ini file:

    date.timezone = "US/Central"

    Alternatively you should replace the US/Central timezone with the desired timezone as outlined here if you wish PHP to use another timezone.