PHP ve MySQL geri tarih ve zaman belirli damgaları dönüştürürken onlar kullanıyor gereken zaman dilimi katılmıyorum görünüyor sayede bir sorun için çalıştırmak.
Ben bir datetime
biçimine geri dönüştürmek istiyorum bir zaman damgası varsa sorun ortaya çıkar. PHP GMT zaman dilimi olmanın temel tarih ve saati verir, ancak MySQL o GMT +1 faaliyet olduğunu düşünüyorum görünüyor, ve buna göre dönüştürür.
Simple reproduction
$original_date = '2009-08-31 23:59:59';
$timestamp = strtotime($original_date);
echo $timestamp; // Gives 1251763199
echo date('Y-m-d H:i:s', $timestamp); // PHP: 2009-08-31 23:59:59
echo db_field('SELECT FROM_UNIXTIME(1251763199)'); // MySQL: 2009-09-01 00:59:59
PHP tarafından verilen damgası dilimi GMT olduğunu varsayarak, correct one verilen tarih için gibi görünüyor. MySQL sonuç doğru biz (o zaman GMT +1 içinde düştü verilen timestamp) BST çalışan olmuştu olurdu.
Ben (1267640942
), PHP ve MySQL bugün bir $timestamp
ile yukarıdaki denerseniz hem 2010-03-03 18:29:02
(dönen hem de bu olduğunu söyle mutlu görünüyor GMT).
What timezone is set on the servers?
Benim dilimi işletim sisteminden daha system
ayarlı ise timezone bilgi sağlayacaktır söylüyorlar the MySQL docs, hangi kontrol ettik. Bu durumda şu anda görünüyor:
mysql> SELECT @@global.time_zone, @@session.time_zone;
+--------------------+---------------------+
| @@global.time_zone | @@session.time_zone |
+--------------------+---------------------+
| SYSTEM | SYSTEM |
+--------------------+---------------------+
Benim web sunucusunda varsayılan dilimi GMT. Bu aynı zamanda (her bir sunucuda cl üzerinde date
komutu çalıştırmak göre) benim veritabanı sunucusunda varsayılan sistem timezone.
foo@bar:/home/foo$ date
Wed Mar 3 18:45:02 GMT 2010
So according to the docs, my DB server should be running on GMT, which is what we want. Yet the query output given in my test scripts suggests that it's running in GMT+1.
Böylece biz onu dışarı sıralamak ve herkes önleyebilir I (tüm tarih aritmetik vb, PHP ve MySQL ya da tamamen yapılıyor) bu soruna yönelik geçici çözümler vardır biliyorum ama bu tutarsızlık neden olan ne altına almak isterim başka onun tarafından takıldı olmaktan takım.
Ben buraya baktı, ya da bu tutarsızlık neden olabilir bilmek ettik çok temel bir ayar var ise herkes biliyor mu?
Teşekkürler!