Добро пожаловать, Гость!
Тема закрыта для обсуждения
Время пользователей - Страница 5
Архив закрытых тем | Время пользователей



Время пользователей
26 Апр 2016Здравствуйте! Искал по форуму, не могу найти. Проблема в следующем. Буквально 3 дня назад, начало не правельно определять время юзеров. Тоесть когда новый пользователь регистрируется, у него показывает на 8 часов разницу с настоящим временем. когда через настройки выбратть свое время, то все ок. Как исправить это? Спасибо
Комментарии:


Jvk35, ну если автор гуглить не умеет то кто то должен, а насчет 10 это не обязательно по гринвичу... к твоему сведению функция time() выводит время сервера, а часовые пояса везде разные прикинь... да и по тому как ты ответил я могу себе представить как ты ему " помочь намерен" думаю его сайт потом Билл Гейц не откачает... вижу по функциям ниже особо никто на обработку времени не замарачивается.
Ссылка
функция обработки времени занимает 6 строк и то потому что я вывожу прошедшее время и день недели по русски, и заметь часы идут точно по москве
Добавлено:
на читай это просто невероятно но земля круглая, Ссылка а еще оказывается эти самые пояса умеют определять в пыхе одной функцией Ссылка ну думаю открытий для тебя на сегодня хватит, а когда поймешь что не на всех поясах разница с сервером автора в 10 часов можешь продолжить умничать
Добавлено:
на читай это просто невероятно но земля круглая, Ссылка а еще оказывается эти самые пояса умеют определять в пыхе одной функцией Ссылка ну думаю открытий для тебя на сегодня хватит, а когда поймешь что не на всех поясах разница с сервером автора в 10 часов можешь продолжить умничать



Nnm (1 Мая 2016):
чудите вы парни лишнего все проще
<?php
date_default_timezone_set("UTC"); //часовой пояс по Гринвичу
$time = time(); // Вот это значение отправляем в базу чтобы небыло путаницы
$offset = 3; // Допустим, у пользователя смещение относительно Гринвича составляет +3 часа
$time += 3 * 3600; // Добавляем 3 часа к времени по Гринвичу
echo date("Y-m-d H:i:s", $time); //Выводим. время пользователя, согласно его часовому поясу
?>
Nnm, умело гуглишь зачем ему еще плюс 3 часа к 10?чудите вы парни лишнего все проще
<?php
date_default_timezone_set("UTC"); //часовой пояс по Гринвичу
$time = time(); // Вот это значение отправляем в базу чтобы небыло путаницы
$offset = 3; // Допустим, у пользователя смещение относительно Гринвича составляет +3 часа
$time += 3 * 3600; // Добавляем 3 часа к времени по Гринвичу
echo date("Y-m-d H:i:s", $time); //Выводим. время пользователя, согласно его часовому поясу
?>
Добавлено:
в общем автор пиши в лс помогу
______________________
AptEntity96


чудите вы парни лишнего все проще
<?php
date_default_timezone_set("UTC"); //часовой пояс по Гринвичу
$time = time(); // Вот это значение отправляем в базу чтобы небыло путаницы
$offset = 3; // Допустим, у пользователя смещение относительно Гринвича составляет +3 часа
$time += 3 * 3600; // Добавляем 3 часа к времени по Гринвичу
echo date("Y-m-d H:i:s", $time); //Выводим. время пользователя, согласно его часовому поясу
?>



Автор темы
Jvk35, Вставил. Не помогло. После регистрации, пользователь видит время в 10 часов разницы. После настроек в профиле, все нормально.



Angelok0803 (27 Апр 2016):
Zed, Стандартное, не чего не менял
Если так:
time(); То не чего. А так:
$time - то число времени 1461766888.
function ltime($time,$full=0)
{
global $user;
$time=time()-$time;
if ($time<60)
$ltime=$time.' с';
elseif ($time>=60 && $time<3600)
$ltime=round($time/60).' мин';
elseif ($time>=3600 && $time<86400)
$ltime=round($time/3600).' ч';
elseif ($time>=86400 && $time<2592000)
$ltime=round($time/86400).' дн';
else
$ltime=round($time/(3600*24*30)).' мес';
if ($full==1)
$ltime.=' назад';
elseif ($full==2)
$ltime.=null;
else
$ltime.=' «';
if ($time==0)
$ltime='только что';
return $ltime;
}
Angelok0803,Zed, Стандартное, не чего не менял
Если так:
time(); То не чего. А так:
$time - то число времени 1461766888.
function ltime($time,$full=0)
{
global $user;
$time=time()-$time;
if ($time<60)
$ltime=$time.' с';
elseif ($time>=60 && $time<3600)
$ltime=round($time/60).' мин';
elseif ($time>=3600 && $time<86400)
$ltime=round($time/3600).' ч';
elseif ($time>=86400 && $time<2592000)
$ltime=round($time/86400).' дн';
else
$ltime=round($time/(3600*24*30)).' мес';
if ($full==1)
$ltime.=' назад';
elseif ($full==2)
$ltime.=null;
else
$ltime.=' «';
if ($time==0)
$ltime='только что';
return $ltime;
}
пробуй
<?php
function ltime($time = NULL) {
if(!$time) $time = time();
$data = date('j.n.y', $time);
if($data == date('j.n.y')) $res = 'Сегодня '. date('G:i', $time);
elseif($data == date('j.n.y', time() - 86400)) $res = 'Вчера '. date('G:i', $time);
else {
$m = array('0','Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн', 'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек');
$res = date('j '. $m[date('n', $time)] .' Y в G:i', $time);
}
return $res;
}
?>
______________________
AptEntity96