Veritabanındaki datetime değeri arkasında üç saat

3 Cevap php

Ben bir sütun tipi olarak DATETIME kullanarak ve NOW() eklemek için kullanıyorum. Yazdırdığı zaman, üç saat gerisindedir. Ben EST zaman üç saat öncesinde çalışır, böylece ne yapabilirim?

Ben sayfamda DATETIME biçimlendirmek için php tarih kullanıyorum.

3 Cevap

Tarih ŞİMDİ kullanarak veritabanında saklanan if () yanlış, o zaman gerek change your MySQL server settings to the correct timezone. Eğer baskı kez yalnızca hatalı Eğer, modify your php script to use the correct timezone gerekir.

Edit:

Tarihini kullanarak tarih (biçimlendirmek) hakkında bilgi için W3schools' convenient php date overview bakın.

Edit 2:

GoDaddy (şüpheli) ayarını değiştirmek için olsun, ya da tabloya taktığınızda 3 saat ekleme ya. Eğer tabloda ayarlamak zaman tarihini değiştirmek için MySQL date add function bakın. DATE_ADD şey gibi (şimdi (), interval 3 saat) çalışması gerekir.

Senin sorunun tam tarif here.

gmdate() ve gmmktime() bir görünüm verin. Eğer GMT kullanmak eğer kod birden fazla makine üzerinde çalışan, ya da MySQL sunucu ayarlarını değiştirerek bir seçenek değil, ya da vb farklı saat dilimleri, gün ışığı tasarrufu ile ilgili sonunda, özellikle eğer, zaman damgası aritmetik çok daha kolay bulabilirsiniz

Ben UTC zaman diliminde tarih ekleme öneririm. Bu (.. Yaz saati sorunları vb) size gelecekte baş ağrısı bir çok kazandıracak

"INSERT INTO abc_table (registrationtime) VALUES (UTC_TIMESTAMP())"

Benim veri sorgulayabilir zaman aşağıdaki PHP komut dosyasını kullanın

<?  while($row = mysql_fetch_array($registration)){ 

  $dt_obj = new DateTime($row['message_sent_timestamp']." UTC");
  $dt_obj->setTimezone(new DateTimeZone('Europe/Istanbul'));
  echo $formatted_date_long=date_format($dt_obj, 'Y-m-d H:i:s'); } ?>

Sen mevcut php timezones Burada biriyle DateTimeZone değerini değiştirebilirsiniz: