• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Помощь Коррекция времени в блоке

Статус
В этой теме нельзя размещать новые ответы.

pozerovnet

Старатель
Регистрация
31 Янв 2008
Сообщения
400
Реакции
11
Всем привет, с вами - Позёров НЕТ.
Суть проблемы такова.
DLE 7.0
phpbb 2.0.22
Вывод последних комментариев с форума на сайте в блоке.

После переезда на новый сервер (на котором время отличное от моего региона и региона основной массы моих пользователей), в блоке выводит время на час вперёд.

Например:
» Big rap motion — The ... от SKOOL
Cегодня, 19:05 [31|330]
» Ранняя беременность от rock-n-rave
Cегодня, 17:06 [42|3216]
» Оффтоп от rock-n-rave
Cегодня, 16:56 [2482|85561]

Соответственно каждый из этих комментов был написан в:
18:05
16:06
15:56

Как скорректировать время в блоке, если оно берётся с сервера (в движке +120, -60 и т.д. не предлагать - не поможет, надо править функцию).
Сейчас это выглядит примерно так:
PHP:
$db_phpbb->query($query_str); 

while($row = $db_phpbb->get_row()) 
{ 

if ($row["username"] == "Anonymous") { $row["username"] = "Гость"; }

  $format_stroki_user_profile='<a href='.$phpBB_site.'/profile.php?mode=viewprofile&u='.$row['poster_id'].'>'.$row["username"].'</a>'; 

   switch (date("d.m.y",$row["post_time"])): 
      case date("d.m.y"): 
           $day= "Cегодня, ".date("H:i",$row["post_time"]);   //пост был написан сегодня 
          break; 
      case date("d.m.y",time()-86400): 
            $day="Вчера, ".date("H:i",$row["post_time"]);      //пост был написан вчера 
          break; 
       default: 
          $day=date("j M Y, H:i",$row["post_time"]);      //пост был написан более двух дней назад 
    endswitch; 

   $title1=$row['topic_title']; 
   if (strlen($title1) > $dlina_temi) 
      $title2 = substr ($title1, 0, $dlina_temi)." ...";    //если длина темы больше $dlina_temi символов, то обрезаем 
   else 
      $title2 = $title1;                           //если меньше или равна, то оставляем 

   $replycount=$row["topic_replies"]; 
   $views=$row['topic_views']; 

   $zagolovok=preg_replace('/{Full_title}/',$title1, $format_stroki); 
   $zagolovok=preg_replace('/{URL_to_post}/',$phpBB_site.'/viewtopic.php?p='.$row["post_id"].'#'.$row["post_id"], $zagolovok); 
   $zagolovok=preg_replace('/{Short_title}/',$title2, $zagolovok); 
   $zagolovok=preg_replace('/{User_name}/',$format_stroki_user_profile, $zagolovok); 
   $zagolovok=preg_replace('/{Date}/',$day, $zagolovok); 
    
   $zagolovok=preg_replace('/{ReplyCount}/',$replycount, $zagolovok); 
   $zagolovok=preg_replace('/{Views}/',$views, $zagolovok);
    
   $phpbb_block .= $zagolovok; 
} 
return $phpbb_block;
}

Что подправить, что бы показывало правильное время?
 
Вывод последних комментариев с форума на сайте в блоке.
Как скорректировать время в блоке, если оно берётся с сервера (в движке +120, -60 и т.д. не предлагать - не поможет, надо править функцию).
Какой **х движок? Посты то берутся с ФОРУМА, и timestamp ставит ФОРУМ!

А если хочешь править функцию, то по моему за сдвиг во времени отвечает функция mktime.
 
Но функция получения времени (для вставки в форум) или как бы это сформулировать... Короче берётся с сервера и эта функция описана в коде в первом посте.
С форума берётся - это да, но время ставит сервера, потому надо как-то поправить это дело. (сделать в блоке минус один час)
 
while($row = $db_phpbb->get_row())
...
switch (
date("d.m.y",$row["post_time"]):(

Да ладно? На форуме править сдвиг по времени установить?
 
Как? о_О
На форуме время показывает нормальное (написание поста)

Смотри демо проблемы:
 
GMT +4, так выводятся дата в сообщении в блоке. Это часовой пояс времени сервера?
 
Часовой пояс времени сервера МСК (Москва)
У меня на сайте Беларусь (-1 от МСК или +2 по Гринвичу), но сейчас я так понимаю летнее время, соответственно ещё +1, значит +3 от Гринвича - время моё и как раз если ещё +1 накинуть, то получается время сервера - МСК.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху