Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Организация привидения времения по регионам
 
 автор: parczynski   (24.07.2007 в 12:22)   письмо автору
 
 

Все! я совсем запутался. в PHP слишком много функция для времени.
Вообщем вопрос может очень даже простой но я никак не могу понять.
при регистрации пользователь выбирает смещение времени его региона. на сайте есть сообщения с временем публикации. как в базе хранить время публикации чтобы его можно было бы потом подстроить под время пользователя? и вообще как его подстроить под время пользователя?

   
 
 автор: Trianon   (24.07.2007 в 12:30)   письмо автору
 
   для: parczynski   (24.07.2007 в 12:22)
 

время в БД хранить (или хотя бы вытаскивать) в виде unixtime
смещение времени клиента определять скриптом на JS.
коррекцию вносить php? либо в сложных случаях - посуточные отчеты, например, - php и SQL

   
 
 автор: parczynski   (24.07.2007 в 12:53)   письмо автору
 
   для: Trianon   (24.07.2007 в 12:30)
 

смещение времени вроде понятно как определять, хотя это и клиент сможет сделать. а вот коррекцию делать надо на php привиду конкретный пример:
пользователь из Новосибирска (GMT + 6:00) оставил сообщение
затем пользователь из Мадрида (GMT + 1:00) решил прочитать это сообщение, но ему нужно вывести время в соответствии с его региональными установками. как конкретно его (время) хранить в БД и как скорректировать???? на php

   
 
 автор: Trianon   (24.07.2007 в 13:10)   письмо автору
 
   для: parczynski   (24.07.2007 в 12:53)
 

Не так.

пользователь из Новосибирска (Монреаля, Сиднея)оставил сообщение. Сервер зафиксировал время по UTC.
затем пользователь из Мадрида (GMT + 1:00) решил прочитать это сообщение, но ему нужно вывести время в соответствии с его региональными установками.
Определяется его смещение времени. вычитается смещение времени сервера относительно UTC. Разность добавляется к метке времени из БД. Сумма переводится стандартными средствами в строковый эквивалент и выдается пользователю.
Как вариант, можно хранить вместе с сообщением не только метку времени, но и смещение времени клиента, его оставившего. Тогда можно при выводе надписывать два времени. когда оно написано по времени автора и когда по времени читателя.

   
 
 автор: parczynski   (24.07.2007 в 18:00)   письмо автору
 
   для: Trianon   (24.07.2007 в 13:10)
 

да алгоритм вроде и так понятный, а вот как конкретно на php засовывать дату в unixtime в базу и как ее преобразовывать в соотв с регион настройками??? привидите пожалууйста простенький пример, или на худой конец ссылочку на чтиво чтоб я все понял.

   
 
 автор: Trianon   (24.07.2007 в 18:16)   письмо автору
 
   для: 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

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования