2011-12-27 16 views
11

Benim durumumda, hem sunucu hem de istemci aynı bilgisayardayım, localhost'tayım. Date() işlevinden tarihi eklediğimde, 11 saat önceki bir süre için tamamen yanlış bir değer görüntüler. Ayrıca gmdate() öğesini de denedim, ancak tarih AM'de değil PM'de görüntülenir. Apache sunucu zamanını değiştirmenin herhangi bir yolu var, bu yüzden php'de her aldığımda, bilgisayarımdaki saat ile aynı görüntüleniyor mu?Apache sunucudaki saati nasıl değiştirirsiniz, bu nedenle bilgisayarın saati ile eşleşir (PHP)?

EDIT: Geç düzenleme için özür dilerim. Saat dilimini php.ini içinde ayarlamıştım ama hala çalışmıyor. Ve eminim ki, el kitabından aldım ve phpinfo() 'dan kontrol ettiğim için saat dilimim doğru.

+1

Olası kopya. Lütfen bu soruya verdiğim yanıtı şu adreste bulabilirsiniz: http://stackoverflow.com/questions/8596083/apache-time-stamp-incorrect/8596163#8596163 –

+0

http://php.net/manual/en/datetime.configuration.php – hakre

+0

@ TomS Bunu zaten yaptım, ama hala çalışmıyor! – menislici

cevap

14

ben aradığınız inanıyoruz: date_default_timezone_set (string $timezone_identifier)

Link

Ayrıca php.ini yapılandırmasında bu ayarlayabilirsiniz.

+0

iyi bir yanıt olarak değiştirebilir, sadece date_default_timezone_set ile ilgili bir problemdir, bu yüzden OP yazılımı çalıştırıyorsa o yazmadıysa onu çalıştırdığı her yazılım parçasına eklemek zorunda kalacaktı, oysa cevabımdaki gibi php.ini'de ayarlanması, ayarı değiştirmek zorunda olması gereken tek yer. – Justin

+0

Hepsi yazılım için yazdığınıza göre değişir - taşınabilirlik için yazılım yazıyorsanız, bunu kod içinde ayarlama özelliğine sahip olmak arzu edilen bir özellik olabilir. –

+0

Evet Andy bu doğru. Ancak, sunucunuzun bir localhost'ta yerel saatinizle aynı olmasını istiyorsanız, php.ini dosyasında ayarlanması en uygunudur. Daha sonra programda değiştirme yeteneği yaratma (eğer yazdığınız bir program varsa) bu açıdan taşınabilirliği sağlamak için ikincildir. – Justin

9

Bunu php.ini dosyanızda yapmanız gerekir. Ben pencerelerde benim ve benim php.ini dosyasının yeri üstünde olacak şekilde WAMP çalıştırın: c: Daha sonra bu dosyayı açmak /wamp/bin/apache/Apache2.2.21/bin/

ve varsayılan olarak ayarlanır: date.timezone = UTC Verirsin desteklenen zaman dilimleri tam listesi için ne zaman dilimi istediğiniz için bu değeri ...

değiştirmek ziyaret edebilirsiniz: http://php.net/manual/en/timezones.php

8

Aç /etc/php.ini altında php.ini.

Bu satırı uncomment ve kıta ve ana şehir ekleyin. Almanya (Deutschland) için çalışan bir örnek.

[Date] 
; Defines the default timezone used by the date functions 
; http://php.net/date.timezone 
date.timezone = Europe/Berlin 

Almanca Tüm saat dilimleri için web sitesine http://php.net/manual/de/timezones.php bakınız.

Dosya php.ini dosyasını kaydedin. Ve apache'yi yeniden başlat.

systemctl restart httpd.service 
+0

Tüm 'php.ini' boyunca ilerleyin ve bu değişikliği tüm yapın' date.timezone = ' –

0

bu php.ini içinde değiştirilebilir: Mageia LINUX bu kullanır. xampp kullanıyorsanız, xampp/php/php.ini dosyasını açın. 'Date.timezone = Avrupa/Berlin' satırına bakın ve saat diliminize geçin. Benim durumumda 'date.timezone = Africa/Nairobi' olarak değiştirdim. kaydedin ve yeniden başlatın.