| Server IP : 180.180.241.3 / Your IP : 216.73.216.216 Web Server : Microsoft-IIS/7.5 System : Windows NT NETWORK-NHRC 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586 User : IUSR ( 0) PHP Version : 5.3.28 Disable Function : NONE MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/AppServ/www/news/administrator/components/com_vvisit_counter/helpers/ |
Upload File : |
<?php
/**
* @version $Id: datetime.php 2009-12-05 vinaora $
* @package VINAORA VISITORS COUNTER
* @copyright Copyright (C) 2007 - 2010 VINAORA. All rights reserved.
* @license GNU/GPL
* @website http://vinaora.com
* @email admin@vinaora.com
*/
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
?>
<?php
class extVisitCounterDateTime {
/*
** Determine Starting Date/Time of Today, Yesterday, This Week, Last Week, This Month, Last Month
** Return Unix Time Array
*/
function &getTimeStart( $offset=0, $issunday=true, $now="" ){
$offset = (float) $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;
}
/*
** Determine Local Starting Time
** Return Unix Time
** Example: If Global Time (GMT+00:00) = 1248912000 (2009/07/31 - 00:00:00)
** then Local Time (GMT+07:00) = 1248912000 - 7*3600 = 1248886800,
** Local Time (GMT-05:00) = 1248912000 + 5*3600 = 1248930000
*/
/* ------------------------------------------------------------------------------------------------ */
function localTimeStart( $timestart, $offset=0, $type="day", $now = "" ){
$timestart = (int) $timestart;
$offset = (float) $offset;
$now = (int) $now;
if ( empty($now) ){
$now = mktime();
}
$type = strtolower( trim ($type) );
if ( $type != "day" && $type != "week" && $type != "month" ) $type = "day";
$nexttimestart = strtotime( "+1 " . $type, $timestart ) ;
$lasttimestart = strtotime( "-1 " . $type, $timestart ) ;
if ( $offset > 0 ) {
if ( ( $nexttimestart - $now ) < $offset*60*60 ) {
$timestart = $nexttimestart - $offset*60*60;
}
else $timestart -= $offset*60*60;
}
if ( $offset < 0 ) {
$offset = -$offset;
if ( ( $now - $timestart ) < $offset*60*60 ) {
$timestart = $lasttimestart + $offset*60*60;
}
else $timestart += $offset*60*60;
}
return $timestart;
}
/* ------------------------------------------------------------------------------------------------ */
}
?>