| | Модуль статистики моего движка некорректно отображает число хитов в связи с тем, что сервер хостера в США и на Тихоокеанском времени, т.е. разница во времени 11 часов. Когда у них 23:00 этого дня, у нас (Московское время) уже 10:00 следующего дня. Соответственно, в 10:00 утра этого дня мне показывается число хитов по состоянию на 23:00 предыдущего дня.
Кажется решил проблему так:
<?php
$Today = getdate();
//Formatting Current Date
$month = $Today['month'];
$mday = $Today['mday'];
$year = $Today['year'];
$sm = ( 39600 ); // Разница во времени в сек.
// Hits
$t_time = time()+$sm;
$t_year = date("Y", $t_time);
$t_month = date("n", $t_time);
$t_date = date("j", $t_time);
//Formatting Previous Day
$pmday = $t_date-1;
print date( "j.m.Y H:i:s" , time() + $sm);
//Hits Today
$result = $db->sql_query( "SELECT hits FROM ".$prefix."_stats_date WHERE year='$t_year' AND month='$t_month' AND date='$t_date'" );
list($today) = $db->sql_fetchrow( $result );
$content .= "<b>$today</b><br>\n";
//Hits Previous Day
$result = $db->sql_query( "SELECT hits FROM ".$prefix."_stats_date WHERE year='$t_year' AND month='$t_month' AND date='$pmday'" );
list($yesterday) = $db->sql_fetchrow( $result );
$content .= "<b>$yesterday</b><br>\n";
//Hits Total
$result = $db->sql_query("SELECT count from ".$prefix."_counter order by type desc");
list($total) = $db->sql_fetchrow($result);
$content .= "<b>$total</b>\n";
?>
|
Но есть еще одна проблема: как проделать такое в модуле отображения ежечасной статистики. Там слева в таблице показано время построчно в формате 00:00-00:59........23:00-23:59, а напротив число хитов за каждый период времени.
Как там "прикрутить" разницу во времени, ума не приложу. Я в php чайник, заранее прошу прощения и помощи.
Вот исходный код модуля:
<?php
$now = date("d-m-Y");
$dot = explode ("-",$now);
$nowdate = $dot[0];
$nowmonth = $dot[1];
$nowyear = $dot[2];
function Stats($total) {
global $hlpfile,$nowyear,$nowmonth,$nowdate,$nowhour, $sitename, $startdate, $prefix, $db, $now, $module_name;
$row = $db->sql_query("SELECT count from ".$prefix."_counter order by type desc");
list($total) = $db->sql_fetchrow($row);
$total++;
OpenTable();
$row4 = $db->sql_fetchrow($db->sql_query("SELECT year, month, date, hour, hits from ".$prefix."_stats_hour order by hits DESC limit 0,1"));
$year = intval($row4['year']);
$month = intval($row4['month']);
$date = intval($row4['date']);
$hour = intval($row4['hour']);
$hits = intval($row4['hits']);
if ($hour < 10) {
$hour = "0$hour:00 - 0$hour:59";
} else {
$hour = "$hour:00 - $hour:59";
}
echo "<BR><BR>";
showHourlyStats($nowyear,$nowmonth,$nowdate);
CloseTable();
}
function showHourlyStats($year,$month,$date){
global $prefix,$bgcolor1,$bgcolor2,$db, $ThemeSel;
$l_size = getimagesize("themes/$ThemeSel/images/leftbar.gif");
$m_size = getimagesize("themes/$ThemeSel/images/mainbar.gif");
$r_size = getimagesize("themes/$ThemeSel/images/rightbar.gif");
$resulttotal = $db->sql_query("SELECT sum(hits) as TotalHitsHour from ".$prefix."_stats_hour where year='$year' and month='$month' and date='$date'");
list($TotalHitsHour) = $db->sql_fetchrow($resulttotal);
$db->sql_freeresult($resulttotal);
$nowdate = date("d-m-Y");
$nowdate_arr = explode("-",$nowdate);
echo "<table width=\"70%\"align=\"center\" bgcolor=\"#000000\" cellspacing=\"1\" cellpadding=\"3\" border=\"0\">";
echo "<tr><td width=\"15%\" bgcolor=\"$bgcolor2\">Время</td><td bgcolor=\"$bgcolor2\" width=\"70%\">Просмотрено страниц</td></tr>";
for ($k = 0;$k<=23;$k++) {
$result = $db->sql_query("select hour,hits from ".$prefix."_stats_hour where year='$year' and month='$month' and date='$date' and hour='$k'");
if ($db->sql_numrows($result) == 0){
$hits=0;
} else {
$row = $db->sql_fetchrow($result);
$hour = intval($row['hour']);
$hits = intval($row['hits']);
}
echo "<tr><td bgcolor=\"$bgcolor1\">";
if ($k < 10) {
$a = "0$k";
} else {
$a = $k;
}
echo "$a:00 - $a:59";
$a = "";
echo "</td><td bgcolor=\"$bgcolor1\">";
if ($hits == 0) {
$WidthIMG = 0;
$d_percent = 0;
} else {
$WidthIMG = round(100 * $hits/$TotalHitsHour,0);
$d_percent = substr(100 * $hits / $TotalHitsHour, 0, 5);
}
echo "<img src=\"themes/$ThemeSel/images/leftbar.gif\" Alt=\"\" width=\"$l_size[0]\" height=\"$l_size[1]\"><img src=\"themes/$ThemeSel/images/mainbar.gif\" height=\"$m_size[1]\" width=",$WidthIMG * 2," Alt=\"\">"
."<img src=\"themes/$ThemeSel/images/rightbar.gif\" Alt=\"\" width=\"$r_size[0]\" height=\"$r_size[1]\"> $d_percent% ($hits хитов)</td></tr>"
."</td></tr>";
}
$db->sql_freeresult($result);
echo "</table>";
}
switch($op) {
case "Stats":
Stats($total);
break;
}
?>
|
| |