|
|
|
| Все! я совсем запутался. в PHP слишком много функция для времени.
Вообщем вопрос может очень даже простой но я никак не могу понять.
при регистрации пользователь выбирает смещение времени его региона. на сайте есть сообщения с временем публикации. как в базе хранить время публикации чтобы его можно было бы потом подстроить под время пользователя? и вообще как его подстроить под время пользователя? | |
|
|
|
|
|
|
|
для: parczynski
(24.07.2007 в 12:22)
| | время в БД хранить (или хотя бы вытаскивать) в виде unixtime
смещение времени клиента определять скриптом на JS.
коррекцию вносить php? либо в сложных случаях - посуточные отчеты, например, - php и SQL | |
|
|
|
|
|
|
|
для: Trianon
(24.07.2007 в 12:30)
| | смещение времени вроде понятно как определять, хотя это и клиент сможет сделать. а вот коррекцию делать надо на php привиду конкретный пример:
пользователь из Новосибирска (GMT + 6:00) оставил сообщение
затем пользователь из Мадрида (GMT + 1:00) решил прочитать это сообщение, но ему нужно вывести время в соответствии с его региональными установками. как конкретно его (время) хранить в БД и как скорректировать???? на php | |
|
|
|
|
|
|
|
для: parczynski
(24.07.2007 в 12:53)
| | Не так.
пользователь из Новосибирска (Монреаля, Сиднея)оставил сообщение. Сервер зафиксировал время по UTC.
затем пользователь из Мадрида (GMT + 1:00) решил прочитать это сообщение, но ему нужно вывести время в соответствии с его региональными установками.
Определяется его смещение времени. вычитается смещение времени сервера относительно UTC. Разность добавляется к метке времени из БД. Сумма переводится стандартными средствами в строковый эквивалент и выдается пользователю.
Как вариант, можно хранить вместе с сообщением не только метку времени, но и смещение времени клиента, его оставившего. Тогда можно при выводе надписывать два времени. когда оно написано по времени автора и когда по времени читателя. | |
|
|
|
|
|
|
|
для: Trianon
(24.07.2007 в 13:10)
| | да алгоритм вроде и так понятный, а вот как конкретно на php засовывать дату в unixtime в базу и как ее преобразовывать в соотв с регион настройками??? привидите пожалууйста простенький пример, или на худой конец ссылочку на чтиво чтоб я все понял. | |
|
|
|
|
|
|
|
для: parczynski
(24.07.2007 в 18:00)
| | >а вот как конкретно на php засовывать дату в unixtime в базу
$sql = "INSERT INTO tbl (msg, author, dttm) VALUES('Привет!', 'Вася', NOW())";
|
$sql = "SELECT tbl.*, UNIX_TIMESTAMP(dttm) AS utime FROM tbl";
|
> и как ее преобразовывать в соотв с регион настройками???
$cs_offset = $client_offset- $server_offset;
date("формат", $utmsg + ($client_offset- $server_offset));
$sql = "SELECT tbl.*, FROM_UNIXTIME($cs_ofs+UNIX_TIMESTAMP(dttm)) AS clitime FROM tbl";
|
ссылочку тоже можно найти.
http://softtime.ru/forum/read.php?id_forum=1&id_theme=31431 | |
|
|
|