PHP DateTime Tutarsızlık?

0 Cevap php

Kullanımı PHP 5.2.5 Biraz DateTime nesneler ile çalışan ve kapalı görünüyordu zaman fark edildi. Ben yaşıyorum sorun dilimleri ile ilgili olabilir, ama emin değilim - ben nasıl çıktı buna bağlı bir Unix Zaman Damgası bir DateTime oluşturma ve farklı / beklenmeyen sonuçlar alıyorum.

Ben kolayca "sorunu" göstermek için aşağıdaki yarattı:

$timezone = new DateTimeZone('America/Chicago'); 
$now = time(); 
$now_datetime = new DateTime('@' . $now, $timezone); 
echo phpversion() . "\n\n"; 
echo $now . "\n"; 
echo $now_datetime->format('U') . "\n\n"; 
echo date('g:i:sa', $now) . "\n";
echo $now_datetime->format('g:i:sa') . "\n\n";

Bu aşağıdaki çıktılar:

5.2.5

1287676530
1287676530

10:55:30am
3:55:30pm

Ben doğru zaman dilimi içinde şu anda yaşıyorum, ve date() fonksiyonu çıkışına biçimlendirilmiş bir tarih, hem de 'Amerika / Chicago' varsayılan zaman dilimi olmanın kullanırken sunucu "doğru" zamanı (10:00) gösteriyor o makinede. DateTime::format() aracılığıyla değerleri çıktısı Ama, ne zaman, zamanları çok farklı.

Ben sadece doğru zaman damgası tutan doğrulamak için ->format('U') eklendi.

Yani, doing something wrong muhtemelen değilim veya ben the wrong expectations var. Bu yüzden what am I missing?

Bu DateTime ile bir saat dilimi sorunu gibi görünüyor, ama bu durum sanki ... yanlış, neden Amerika / Chicago "şimdi" gösteriyor?

0 Cevap