Мне было интересно, как сделать лучшую пользовательскую конфигурацию, когда пользователь устанавливает свое собственное время по Гринвичу, например если пользователь был в часовом поясе GMT + 3, и пользователь устанавливает его через UCP.
Что я сделал, так это каждый параметр в раскрывающемся меню:
<select name="timezone">
...
<option value="-7200">GMT-2</option>
<option value="-3600">GMT-1</option>
<option value="0">GMT</option>
<option value="3600">GMT+1</option>
<option value="7200">GMT+2</option>
...
</select>
Таким образом, и когда пользователь выбирает его, он добавит значение в свое поле пользователя в базе данных.
Я застрял в том, что когда пользователь создал сообщение, оно использует штамп time (), а я использую функцию gmdate ():
while(loop goes here)
{
$post_time = $row['post_time'] // e.g. 1282165261
if($row['user_timezone'] > 0)
{
$timezone = $post_time-$row['user_timezone'];
}
else
{
$timezone = $post_time+$row['user_timezone'];
}
}
Который выводится с этим форматом отметки времени:
gmdate("D jS M Y @ g:iA", $timezone);
Но проблема в том, что если я использую что-то ниже GMT, например GMT-1, GMT-6, меняется на +
Вопрос в том, как лучше всего настроить временные метки для предпочитаемого пользователем времени по Гринвичу?