UTCを使用して内部的にすべての日付を保存し、次にユーザーセットごとに保存します。
if ( $_SESSION['user_timezone'] ) date_default_timezone_set($_SESSION['user_timezone']);
勇気を持ちたいと思っていて、ユーザーがインターネットベースである場合(私のほとんどのようにVPNを使用するのではなく)、位置情報サービスを使用して位置情報を検索できます。
これをユーザーごとに保存し、ユーザーに選択させます。
ユーザーに提示するタイムゾーンリストを生成する簡単な方法:
echo '<select id="userTimezone" onChange="some_ajax_function">
<option value="">Please select your Timezone</option>';
foreach (DateTimeZone::listIdentifiers() as $value )
{
if ( $_SESSION['user_timezone'] == $value )
{
$output .= '<option value="' . $value . '" selected="selected">' . htmlentities($value) . '</option>';
}
else
{
$output .= '<option value="' . $value . '">' . htmlentities($value) . '</option>';
}
}
$output .= '</select>';