Example #1
0
 function &getTimeStart($offset = 0, $issunday = true, $now = "")
 {
     $offset = (double) $offset;
     $now = (int) $now;
     if (empty($now)) {
         $now = mktime();
     }
     /* ------------------------------------------------------------------------------------------------ */
     // Determine GMT Time (UTC+00:00)
     // Determine this minute, this hour, this day, this month, this year
     // Don't use strftime()
     $minute = (int) gmstrftime("%M", $now);
     $hour = (int) gmstrftime("%H", $now);
     $day = (int) gmstrftime("%d", $now);
     $month = (int) gmstrftime("%m", $now);
     $year = (int) gmstrftime("%Y", $now);
     // Determine Starting GMT Time and Local Time of Today
     $daystart = gmmktime(0, 0, 0, $month, $day, $year);
     $local_daystart = extVisitCounterDateTime::localTimeStart($daystart, $offset, "day");
     // Determine Starting GMT Time and Local Time of Yesterday
     // $yesterdaystart		=	strtotime( "-1 day", $daystart ) ;
     $yesterdaystart = $daystart - 86400;
     $local_yesterdaystart = $local_daystart - 86400;
     // Determine Starting GMT Time and Local Time of This Week
     // If Sunday is starting day of week then Sunday = 0 ... Saturday = 6
     // If Monday is starting day of week then Monday = 0 ... Sunday = 6
     $weekday = (int) strftime("%w", $now);
     if (!$issunday) {
         if ($weekday) {
             $weekday--;
         } else {
             $weekday = 6;
         }
     }
     $weekstart = $daystart - $weekday * 86400;
     $local_weekstart = extVisitCounterDateTime::localTimeStart($weekstart, $offset, "week");
     // Starting Starting GMT Time and Local Time of Last Week
     $lweekstart = $weekstart - 7 * 86400;
     $local_lweekstart = $local_weekstart - 7 * 86400;
     // Determine Starting GMT Time and Local Time of This Month
     $monthstart = gmmktime(0, 0, 0, $month, 1, $year);
     $local_monthstart = extVisitCounterDateTime::localTimeStart($monthstart, $offset, "month");
     // Determine Starting GMT Time and Local Time of Last Month
     // $days_lmonth: Number days of last month (28/29, 30 or 31)
     $days_lmonth = (int) strftime("%d", $monthstart - 86400);
     $lmonthstart = $monthstart - $days_lmonth * 86400;
     $local_lmonthstart = $local_monthstart - $days_lmonth * 86400;
     $datetime = array();
     $datetime["daystart"] = $daystart;
     $datetime["local_daystart"] = $local_daystart;
     $datetime["yesterdaystart"] = $yesterdaystart;
     $datetime["local_yesterdaystart"] = $local_yesterdaystart;
     $datetime["weekstart"] = $weekstart;
     $datetime["local_weekstart"] = $local_weekstart;
     $datetime["lweekstart"] = $lweekstart;
     $datetime["local_lweekstart"] = $local_lweekstart;
     $datetime["monthstart"] = $monthstart;
     $datetime["local_monthstart"] = $local_monthstart;
     $datetime["lmonthstart"] = $lmonthstart;
     $datetime["local_lmonthstart"] = $local_lmonthstart;
     return $datetime;
 }
// May be use $offset =	$mainframe->getCfg( 'offset' );
// Get a reference to the global cache object.
$cache =& JFactory::getCache();
$cache_time *= 60;
if ($cache_time < 0 || $cache_time > 3600) {
    $cache_time = CACHE_TIMEOUT_DEFAULT * 60;
}
$cache->setLifeTime($cache_time);
// Detect Guest's IP Address
if (!empty($_SERVER['REMOTE_ADDR'])) {
    $ip = $_SERVER['REMOTE_ADDR'];
}
/* ------------------------------------------------------------------------------------------------ */
$now = mktime();
$visits_array = array();
$datetime =& extVisitCounterDateTime::getTimeStart($offset, $issunday, $now);
$daystart = $datetime["daystart"];
$local_daystart = $datetime["local_daystart"];
$yesterdaystart = $datetime["yesterdaystart"];
$local_yesterdaystart = $datetime["local_yesterdaystart"];
$weekstart = $datetime["weekstart"];
$local_weekstart = $datetime["local_weekstart"];
$lweekstart = $datetime["lweekstart"];
$local_lweekstart = $datetime["local_lweekstart"];
$monthstart = $datetime["monthstart"];
$local_monthstart = $datetime["local_monthstart"];
$lmonthstart = $datetime["lmonthstart"];
$local_lmonthstart = $datetime["local_lmonthstart"];
/* ------------------------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------------------------ */
// BEGIN: Caculate number visits of Today, Yesterday, This Week, Last Week, This Month, Last Month
 function migrateTable($now = '')
 {
     $now = empty($now) ? mktime() : (int) $now;
     $visits_array = array("visits" => 0, "guests" => 0, "members" => 0, "bots" => 0);
     $config =& JFactory::getConfig();
     $offset = (double) $config->getValue('config.offset');
     $issunday = true;
     $datetime =& extVisitCounterDateTime::getTimeStart($offset, $issunday, $now);
     $daystart = $datetime["daystart"];
     $local_daystart = $datetime["local_daystart"];
     $yesterdaystart = $datetime["yesterdaystart"];
     $local_yesterdaystart = $datetime["local_yesterdaystart"];
     $weekstart = $datetime["weekstart"];
     $local_weekstart = $datetime["local_weekstart"];
     $lweekstart = $datetime["lweekstart"];
     $local_lweekstart = $datetime["local_lweekstart"];
     $monthstart = $datetime["monthstart"];
     $local_monthstart = $datetime["local_monthstart"];
     $lmonthstart = $datetime["lmonthstart"];
     $local_lmonthstart = $datetime["local_lmonthstart"];
     asort($datetime);
     $visits_array['visits'] = extVisitCounterUpgrade::getVisits(0, current($datetime));
     extVinaoraVisitorsCounter::insertLog(current($datetime), $visits_array);
     while ($cur_time = current($datetime)) {
         $next_time = next($datetime);
         if ($cur_time != $next_time && !empty($next_time)) {
             $visits_array['visits'] = extVisitCounterUpgrade::getVisits($cur_time, $next_time);
             extVinaoraVisitorsCounter::insertLog($next_time, $visits_array);
         }
     }
     $visits_array['visits'] = extVisitCounterUpgrade::getVisits(end($datetime), 0);
     extVinaoraVisitorsCounter::insertLog($now - 1, $visits_array);
 }