Ben herkesin çözüm biliyor ve sonra da bir milyon upvotes olsun ama gerçeklik Ben toplam 100% şaşırıp olduğunu düşünüyor, şimdi hafta boyunca zaman dilimini bir mücadele olmuştur, hiç PHP / MySQL timezone destek için verilen hiçbir cevap 100% çalıştı Benim için, o yüzden çok ayrıntılı olarak burada tekrar soruyu soruyorum ben belki örnek kod ve tüm olabildiğince.
Eğer bir PHP / MySQL uzmanı, ya da deli iyi şans bile bir begginner ve PHP / MySQL / kullanıcı sunulan timezone çalışma kazanılmış varsa, o zaman yardım lütfen.
Aşağıda ben bugüne kadar ne var, ben yaşıyorum konularda ne tür görmek için yorumları okuyun. Bu "1262819848" gibi bir zaman damgası şeklinde ise temelde ben kullanıcıların timezone bir tarih ve zamanı gösterebilir ama MySQL yeni sürümleri yerine, bu gibi "2010-01-06 23:17:28" a dönmek ZAMAN .
(": D: YH: i: m s A", $ zaman_damgası) Bu tarihten içine "2010-01-06 23:17:28" geçmek olsaydı o işler BÜYÜK çalışmak istiyorsunuz ama bunun yerine içeri paased bir zaman damgası ihtiyacı Bunu yapabilirim tek yolu MySQL bir tamsayı alanında gerçek bir zaman damgası saklamak VEYA başka "2010-01-06 23:17:28" değerini almak eather ve sonra sadece çok etmek gibi görünüyor bir zaman damgası dönüştürmek için Ben saklayabilirsiniz havai zaman zaten bir INT alana dönüştürülecek.
O zaman ben çok yardım takdir ediyorum bana bir datetime işlevlerini kullanmanıza yardımcı olabilir, ben şimdi bir kaç yıldır bu sorun takılıp edilmiştir. Ben herkes gibi tamsayı alanı vazgeçmek ve kullanmak üzereyim SO nedense kötü olduğunu söylüyor.
<?PHP
/////////////////////////////////////////////////////////
// Get a MySQL time / date and show in user timezone //
////////////////////////////////////////////////////////
//set the user's time zone for this page
//this assumes the user has already chosen a timezone and we are getting it from a PHP session value now
// example value is "America/New_York" which is -5
date_default_timezone_set($_SESSION['time_zone']);
// get a MySQL result with a time/date value in it
$sql = 'SELECT user_id,date from online_users WHERE user_id = 1';
$result = executeQuery($sql);
// set our date/time value from MySQL into a variable
if ($line_online = mysql_fetch_assoc($result)){
$time_stamp = $line_online['date'];
}
// format our date/time value TIMESTAMP any way we like now!
// MySQL result MUST be in this format '1262291376'
$date_format = date("m:d:y h:i:s A",$time_stamp); // formats timestamp in mm:dd:yy
echo $date_format;
/////////////////////////////////////////////////////////
// Add a time / date to MySQL //
////////////////////////////////////////////////////////
// this add a time and date to MySQL and looks like this in the MySQL table "2010-01-06 23:17:28"
// that is a TIMESTAMP field in MySQL, newer version of mysql store a timestamp like this "2010-01-06 23:17:28" instead of like this "1262819848"
$sql = "INSERT INTO users (`id`, `datetime`) VALUES ('', UTC_TIMESTAMP())";
executeQuery($sql);
// So if I query this record and try to show it like I do in the code above in the "Get mysql result section" It will not work correctly because
// because it is like this "2010-01-06 23:17:28" instead of like this "1262819848"
// The ONLY solution I have found is to store the UTC timestamp into an INTEGER field instead of a DATETIME or TIMESTAMP field.
// Everyone on this site says this is wrong and I could use the default date and time stuff but I have yet to get it working.
// If I could store a timestamp in mysql like a timestamp with no "-" dashes in it, then it would work correctly when I show it on page.
// Basicly I have this half done, I can show the time and date in a users timezone as long as I pass the PHP a real TIMESTAMP like this "1262819848"
?>
Ben en kısa sürede en edeyim bu bir lütuf başlayacak böylece benzer bir soruya geçmiş yanıtlara dayanarak, artı PHP / MySQL ve saat dilimleri ile ilgili bu sitede her yazı okurken, ben muhtemelen bu sorunu çözmek olmaz. Teşekkürler