2011-01-31 17 views
10

Bu komut dosyasını çalıştırmak çalışıyorum:DateTimeZone hatası: Bilinmeyen ya da kötü zaman dilimi

<?php 
$d = new DateTime('now', new DateTimeZone('Asia/Kolkata')); 
$time = $d->format('H:i'); 

echo $time; 
?> 

ama bu hata var:

Fatal error: Uncaught exception 'Exception' with message 'DateTimeZone::__construct() [<a href='function.DateTimeZone---construct'>function.DateTimeZone---construct</a>]: Unknown or bad timezone (Asia/Kolkata)

örneğin Asia/Dacca için iyi çalışır rağmen. Sorun ne olabilir ve nasıl düzeltilebilir?

+3

'print_r (DateTimeZone :: listIdentifiers()) var;' o 'Asya çıkmıyor/Kolkata? – ajreal

cevap

3

ve StackOverflow hoş geldiniz! SSS'yi okumak için zaman ayırmamışsanız.

Ben senin örnek çalıştı ve PHP 5.3.1 ve "Olson" Dilimi Veritabanı Sürüm 2.009,18 ile benim için çalıştı.

Bir phpinfo() yapmak ve size ne zaman dilimini DB sürümünü görür ve onu daha yaşlı ise güncellemek gerekir. Sen en son hali, 2011.1, Asya/Kolkata sahiptir this list görebilirsiniz.

1

eğlence için deneyin.

$timezones = array('Europe/London', 'Mars/Phobos', 'Asia/Kolkata'); 

foreach ($timezones as $tz) { 
    try { 
     $mars = new DateTimeZone($tz); 
    } catch(Exception $e) { 
     echo $e->getMessage() . '<br />'; 
    } 
} 
0

PHP zaman dilimi veritabanı sürüm 5.3 güncellenmiş olmalıdır. Bu yüklemeyi deneyin ve deneyin chroot hapiste web sunucusu çalıştırmak için tekrar

0

bende aynı sorunu deneyin. Bu durumda chrooted dir, Linux saat dilimi dosyalarını içeremez. senin durum ve varsa sunucunuza erişim chroot hapse basit kopyaya tüm dosyaları dosyaları: CentOS için

o

cp -R /usr/share/zoneinfo/ /MY_CHROOT_DIR/usr/share/ 
İlgili konular