Nasıl belirlenir UTC sunucu timezone offset?

1 Cevap php

Ben UTC tablolar ve onu dönüştürmek için php tarih yöntemleri hakkında birçok örnek buldum, ama ben yine de benim web sayfasında bir kullanıcı saat dilimi seçimine dönüştürerek için, basit bir şekilde aldım sonra sunucu tarihini kaçırmayın.

Bu sayfada http://vkham.com/UTC.html Ben aralığını anlamak için net bir kılavuz bulduk, ama ben masada "Europe / Rome", örneğin bağlamak için nasıl bilmiyorum, bu yüzden bu konuda daha net bir şey var ?

Ben sunucu (Amerika / Chicago) arasında dilimini biliyorum ama ben hala kullanıcı makine (örneğin "Europe / Rome") seçilen farklı bir zaman dilimi UTC yöntemi değiştirmek için bir yol bilmiyorum

Ben bir şey tryied, ama I'still şey özledim, ve ben ne olduğunu bilmiyorum:

<?php
$timezone = date ("e");
$date = date ('Y-m-d H:i:s');
print $date." - this is my server date, and his timezone is - $timezone<br/>";

$user_timezone = "Europe/Rome"; // there is a way to convert Europe/Rome to UTC -13?
$selected_timezone = "-13"; // is -13 like Europe/Rome in all cases or only because my server is America/Chicago?
$date_user = date ("Y-m-d H:i:s $selected_timezone");
$str_date_user =  strtotime ($date_user);
$new_user_date = date ('Y-m-d H:i:s', $str_date_user);
print $new_user_date . " - this is my server date, and his timezone is - $user_timezone";
?>

Doesn't exist a way to convert Europe/Rome to -13 for UTC timezone?
Is -13 like Europe/Rome in all cases or only because my server is America/Chicago?

1 Cevap

Eğer kullanıcının zamanını almak için tarih oluşturmak için kullanmak zaman damgası gmdate to generate a date that is displaying the UTC time - whatever timezone your server is running in. Then you can simply add the timezone difference as hours * 3600 kullanabilirsiniz.

Farklı bir yol date_default_timezone_set kullanarak kullanıcının timezone geçici yerel zaman ayarı olacaktır.

Ilk fikir için basit bir örnek aşağıdaki gibi olacaktır:

<?php
$offset   = -13 * 3600; // timezone offset for UTC-13
$utcTime  = gmdate( 'd.m.Y H:i' );
$userTime = gmdate( 'd.m.Y H:i', time() + $offset );
?>