| Server IP : 180.180.241.3 / Your IP : 216.73.216.35 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 : /AppServ/www/news/components/com_jevents/libraries/ |
Upload File : |
<?php
/**
* JEvents Component for Joomla 1.5.x
*
* @version $Id: compatwin.php 1400 2009-03-30 08:45:17Z geraint $
* @package JEvents
* @copyright Copyright (C) 2008-2009 GWE Systems Ltd, 2006-2008 JEvents Project Group
* @license GNU/GPLv2, see http://www.gnu.org/licenses/gpl-2.0.html
* @link http://www.jevents.net
*/
/**
* Compatibility functions for Windows
*
*/
class JEV_CompatWin {
/**
* Add unsupported parameters for Windows to strftime()
*
*/
function win_strftime($format='', $timestamp=null) {
if (!$timestamp) $timestamp = time();
global $mainframe;
$mainframe->set('jevents.strftime', $timestamp);
$patterns = array('/%C/', '/%D/', '/%e/', '/%g/', '/%G/',
'/%h/', '/%n/', '/%r/', '/%R/', '/%t/',
'/%T/', '/%u/', '/%V/' );
//replace unsupported format string specifiers
$format = preg_replace_callback($patterns,
array('JEV_CompatWin', '_cb_strftime'),
$format);
return strftime($format, $timestamp);
}
/**
* Callback function
*
* @static
* @param mixed $pattern array() search pattern or int date
*/
function _cb_strftime($pattern) {
// timestamp used during callback
global $mainframe;
$ts = $mainframe->get('jevents.strftime', time());
switch ($pattern[0]) {
case '%C': return sprintf("%02d", date("Y", $ts) / 100); break;
case '%D': return '%m/%d/%y'; break;
case '%e': return sprintf("%' 2d", date("j", $ts)); break;
case '%g': return strftime('%y', JEV_CompatWin::_getThursdayOfWeek($ts)); break;
case '%G': return strftime('%Y', JEV_CompatWin::_getThursdayOfWeek($ts)); break;
case '%h': return '%b'; break;
case '%n': return "\n"; break;
case '%r': return '%I:%M:%S %p'; break;
case '%R': return '%H:%M'; break;
case '%t': return "\t"; break;
case '%T': return '%H:%M:%S'; break;
case '%u': return ($w = date("w", $ts)) ? $w : 7; break;
case '%V': return JEV_CompatWin::_getWeekNumberISO8601($ts); break;
default: return ' unknown specifier! ';
}
}
/**
* Calculate thursday in the same week of date
*
* @static
* @param int $date date
* @return int date
*/
function _getThursdayOfWeek($date) {
$dayofweek = strftime('%w', $date);
if ($dayofweek == 0) $dayofweek =7;
if ($dayofweek < 4) {
return strtotime('next thursday', $date);
} elseif ($dayofweek > 4) {
return strtotime('last thursday', $date);
} else {
return $date;
}
}
/**
* Get week number according ISO 8601
*
* @static
* @param int $date date
* @return int weeknumber
*/
function _getWeekNumberISO8601($date) {
$thursday = JEV_CompatWin::_getThursdayOfWeek($date);
$thursday_Y = strftime('%Y', $thursday);
$first_th = JEV_CompatWin::_getThursdayOfWeek(strtotime($thursday_Y.'-01-04'));
return ((strftime('%j', $thursday) - strftime('%j', $first_th)) / 7 + 1);
}
}
?>