[Buildroot] [PATCH] php.ini: set date.timezone to UTC
Floris Bos
bos at je-eigen-domein.nl
Sat May 2 15:09:45 UTC 2015
On 05/02/2015 09:49 AM, Arnout Vandecappelle wrote:
> On 02/05/15 01:08, Floris Bos wrote:
>> On 05/02/2015 12:23 AM, Arnout Vandecappelle wrote:
>>> On 01/05/15 20:12, Floris Bos wrote:
>>>> Prevent a warning being logged each time a PHP date/time method is
>>>> used by setting UTC as (default) timezone in php.ini
>>>>
>>>> Signed-off-by: Floris Bos <bos at je-eigen-domein.nl>
>>>> ---
>>>> package/php/php.mk | 1 +
>>>> 1 file changed, 1 insertion(+)
>>>>
>>>> diff --git a/package/php/php.mk b/package/php/php.mk
>>>> index 3b9a117..7bd3f63 100644
>>>> --- a/package/php/php.mk
>>>> +++ b/package/php/php.mk
>>>> @@ -288,6 +288,7 @@ define PHP_INSTALL_FIXUP
>>>> rm -f $(TARGET_DIR)/usr/bin/phpize
>>>> $(INSTALL) -D -m 0755 $(PHP_DIR)/php.ini-production \
>>>> $(TARGET_DIR)/etc/php.ini
>>>> + $(SED) 's/;date.timezone =/date.timezone = UTC/' $(TARGET_DIR)/etc/php.ini
>>> Would it be possible to use BR2_TARGET_LOCALTIME (if set) instead? Something
>>> like:
>>>
>>> ifeq ($(BR2_TARGET_LOCALTIME),)
>>> PHP_LOCALTIME = UTC
>>> else
>>> PHP_LOCALTIME = $(BR2_TARGET_LOCALTIME)
>>> endif
>>>
>>> $(SED) 's%;date.timezone =.*%date.timezone = $(PHP_LOCALTIME)%' \
>>> $(TARGET_DIR)/etc/php.ini
>>>
>>> That is, assuming that php can deal with complex timezones like
>>> Europe/Brussels.
>> PHP used to use the system's time zone name automatically in older PHP versions.
>> But nowadays fills your log with warnings that is not reliable:
>>
>> ==
>> Warning: strtotime(): It is not safe to rely on the system's timezone settings.
> Any idea _why_ it is not safe? I've tried to google it but didn't come up with
> a reason, just a lot of fixes.
I just read:
http://derickrethans.nl/distributions-please-dont-cripple-php-or-red-hat-stop-fucking-around.html
And the problem seem to just be that there isn't a standardized way to
retrieve the exact timezone name set on a system, only derived information.
If you have Europe/London set on your system in the winter, PHP's old
time zone detection algorithm would only be able to detect that it is
currently "UTC" instead of that the timezone is set to London.
I can imagine that indeed gives problems if you have PHP code that works
with time and date values in the past or future, and needs to take into
account day light savings time.
That means there are only problems with the detection, and not really
with the time zone names (except the exotic ones).
And there should be no problem just specifying BR2_TARGET_LOCALTIME in
php.ini like you suggested.
--
Yours sincerely,
Floris Bos
More information about the buildroot
mailing list