LiAna
мне кажется самым правильным было бы сделать следущий механизм. при заходе на сайт в первый раз определять время с помощью javascript, думаю с этим проблем не возникнет, затем перенаправлять броузер средствами javascript на
http://site/path/to/page?time=<время>, а там уже
PHP:
if ($_REQUEST["time"])
{
setcookie("curusertime",$_REQUEST["time"]);
setcookie("curservertime",time());
}
ну а далее в завимости от значения $_COOKIE["cooktime"] менять дизайн. пожалуй единственным недостатком данного решения является то что пользователя зашедшего в первый раз перебросит. хотя это не так важно. заметьте что указал как curusertime так и curservertime, это сделано для того чтобы если первый вход например в 15:00 а потом в 19:00 то можно было определить время пользователя не обращаясь к повторной записи cookie. для этого мы просто делаем
PHP:
$offset = time() - intval($_COOKIE["curservertime"]);
мы получаем например 60*60 (3600) секунд т.е. час. если пользователь зашел через час после установки cookie. далее мы переводит это в минуты.
и прибавляем к curusertime. реализация зависит от того какой формат мы изберем при определении времени пользователя. если вида "15:00" то
PHP:
$curusertime = explode(":",$_COOKIE["curusertime"]);
$curusertime[1] += $offset;
while ($curusertime[1] >= 60)
{
$curusertime[0]++;
$curusertime[1] -= 60;
}
if (strlen($curusertime[1]) == 1) {$curusertime[1] = "0".$curusertime[1];}
$usertime = join(":",$curusertime);
т.е. мы вычесляем сдвижку, далее циклом избавляемся от времени типа "15:125" ("17:05"). ну а далее всё просто
