Timezone konu PHP 5.2, Windows (WAPP yığını)

4 Cevap php

Bir Win2k sunucusunda, bir WAPP yığını (Windows, Apache, PostgreSQL, PHP) kullanarak. Bir PHP web uygulaması çalıştıran. Ayrıca PHP etkileşimli konsolunu kullanarak test.

Datetime düzgün bildirdi, ancak bazı garip nedenle zaman dilimini yanlış bildirdi:

php -a
<?php
echo date('c');
2009-04-19T16:52:35-04:00


C:\WAPP\php>time /t
17:06

C:\WAPP\php>date /t
Sun 04/19/2009

Sunucusunun işletim timezone aslında GMT-5 ayarlanır. Ben (gayri resmi) DST düzeltme kullanılan ve aynı zamanda php_timezonedb.dll uzantısını kullanmaya çalıştı, ama sorun devam.

This server is also running other applications (not under my control), so I can't just change the time. I could also just temporarily set everyone to GMT-4 in the PHP application, but I feel that there should be a less hackish solution.

Herkes herhangi bir öneriniz var mı, ya da ne olduğunu daha derinlemesine bir açıklama verebilir? Ben DST ve Windows son değişikliklerle ilgisi var olduğundan şüpheleniyorsanız, ve bu yanlış dilimini tespit PHP neden oluyor.

4 Cevap

Sen kullanarak dilimi ile ilgili konularda bir sürü önlemek olabilir:

gmdate  ( string $format  [, int $timestamp  ] );

Bu iade GMT saati (Greenwich Mean Time) olması dışında date() işlevi aynıdır.

(Eğer orada sunucunun dilimini ayarlayabilirsiniz) php.ini dosyasına erişim yoksa, komut dilimini ayarlamanız gerekir.

Sen uygulama dizininde bir. Htaccess içinde php date.timezone değişkeni ayarlayarak dilimi php kullanarak ayarlayabilirsiniz.

php_value date.timezone "America/Bahia"