/** * Class process method wnich is used to execute this component. */ public function process() { $sCurrentTimeZone = Phpfox::getTimeZone() == '0' ? '' : ' ' . (substr(Phpfox::getTimeZone(), 0, 1) == '-' ? Phpfox::getTimeZone() : '+' . Phpfox::getTimeZone()); if (substr(Phpfox::getTimeZone(), 0, 1) == 'z' && PHPFOX_USE_DATE_TIME) { $aTimeZones = Phpfox::getService('core')->getTimeZones(); if (isset($aTimeZones[Phpfox::getTimeZone()])) { $oDTZ = new DateTime('now', new DateTimeZone($aTimeZones[Phpfox::getTimeZone()])); $sCurrentTimeZone = $oDTZ->getOffset() / 3600; } } $this->template()->assign(array('sCurrentSiteTime' => Phpfox::getTime(Phpfox::getParam('forum.global_forum_timezone'), PHPFOX_TIME), 'sCurrentTimeZone' => $sCurrentTimeZone)); }
/** * Gets a time stamp, Works similar to PHP date() function. * We also take into account locale and time zone settings. * * @see date() * @param string $sStamp Time stamp format. * @param int $iTime UNIX epoch time stamp. * @return string Time stamp value based on locale. */ public static function getTime($sStamp = null, $iTime = PHPFOX_TIME, $bTimeZone = true) { static $sUserOffSet; if ($bTimeZone) { if (!$sUserOffSet) { $sUserOffSet = Phpfox::getTimeZone(); } if (!preg_match('/z[0-9]+/i', $sUserOffSet, $aMatch)) { // try to find it in the cache $aTZ = Phpfox::getService('core')->getTimeZones(); $sTz = array_search($sUserOffSet, $aTZ); if ($sTz !== false) { $sUserOffSet = $sTz; } } if (substr($sUserOffSet, 0, 1) == 'z' && PHPFOX_USE_DATE_TIME) { // we are using DateTime // get the offset to use based on the time zone index code if (!isset($aTZ)) { $aTZ = Phpfox::getService('core')->getTimeZones(); } if (isset($aTZ[$sUserOffSet])) { $oTZ = new DateTimeZone($aTZ[$sUserOffSet]); $oDateTime = new DateTime(null, $oTZ); $oDateTime->setTimestamp($iTime); $sUserOffSet = $aTZ[$sUserOffSet]; if ($sStamp !== null) { $iNewTime = $oDateTime->format($sStamp); $bSet = true; } } } if ($sStamp === null) { return !empty($sUserOffSet) ? substr($sUserOffSet, 0, 1) == '-' ? $iTime - substr($sUserOffSet, 1) * 3600 : $sUserOffSet * 3600 + $iTime : $iTime; } elseif (!isset($bSet)) { $iNewTime = !empty($sUserOffSet) ? date($sStamp, substr($sUserOffSet, 0, 1) == '-' ? $iTime - substr($sUserOffSet, 1) * 3600 : $sUserOffSet * 3600 + $iTime) : date($sStamp, $iTime); } } else { $iNewTime = date($sStamp, $iTime); } $aFind = array('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'); $aReplace = array(Phpfox::getPhrase('core.monday'), Phpfox::getPhrase('core.tuesday'), Phpfox::getPhrase('core.wednesday'), Phpfox::getPhrase('core.thursday'), Phpfox::getPhrase('core.friday'), Phpfox::getPhrase('core.saturday'), Phpfox::getPhrase('core.sunday'), Phpfox::getPhrase('core.january'), Phpfox::getPhrase('core.february'), Phpfox::getPhrase('core.march'), Phpfox::getPhrase('core.april'), Phpfox::getPhrase('core.may'), Phpfox::getPhrase('core.june'), Phpfox::getPhrase('core.july'), Phpfox::getPhrase('core.august'), Phpfox::getPhrase('core.september'), Phpfox::getPhrase('core.october'), Phpfox::getPhrase('core.november'), Phpfox::getPhrase('core.december')); $iNewTime = str_replace('Mon', 'Monday', $iNewTime); $iNewTime = str_replace('Tue', 'Tuesday', $iNewTime); $iNewTime = str_replace('Wed', 'Wednesday', $iNewTime); $iNewTime = str_replace('Thu', 'Thursday', $iNewTime); $iNewTime = str_replace('Fri', 'Friday', $iNewTime); $iNewTime = str_replace('Sat', 'Saturday', $iNewTime); $iNewTime = str_replace('Sun', 'Sunday', $iNewTime); $iNewTime = str_replace('Jan', 'January', $iNewTime); $iNewTime = str_replace('Feb', 'February', $iNewTime); $iNewTime = str_replace('Mar', 'March', $iNewTime); $iNewTime = str_replace('Apr', 'April', $iNewTime); $iNewTime = str_replace('May', 'May', $iNewTime); $iNewTime = str_replace('Jun', 'June', $iNewTime); $iNewTime = str_replace('Jul', 'July', $iNewTime); $iNewTime = str_replace('Aug', 'August', $iNewTime); $iNewTime = str_replace('Sep', 'September', $iNewTime); $iNewTime = str_replace('Oct', 'October', $iNewTime); $iNewTime = str_replace('Nov', 'November', $iNewTime); $iNewTime = str_replace('Dec', 'December', $iNewTime); $iNewTime = str_replace('Mondayday', 'Monday', $iNewTime); $iNewTime = str_replace('Tuesdaysday', 'Tuesday', $iNewTime); $iNewTime = str_replace('Wednesdaynesday', 'Wednesday', $iNewTime); $iNewTime = str_replace('Thursdayrsday', 'Thursday', $iNewTime); $iNewTime = str_replace('Fridayday', 'Friday', $iNewTime); $iNewTime = str_replace('Saturdayurday', 'Saturday', $iNewTime); $iNewTime = str_replace('Sundayday', 'Sunday', $iNewTime); $iNewTime = str_replace('Januaryuary', 'January', $iNewTime); $iNewTime = str_replace('Februaryruary', 'February', $iNewTime); $iNewTime = str_replace('Marchch', 'March', $iNewTime); $iNewTime = str_replace('Aprilil', 'April', $iNewTime); $iNewTime = str_replace('Junee', 'June', $iNewTime); $iNewTime = str_replace('Julyy', 'July', $iNewTime); $iNewTime = str_replace('Augustust', 'August', $iNewTime); $iNewTime = str_replace('Septembertember', 'September', $iNewTime); $iNewTime = str_replace('Octoberober', 'October', $iNewTime); $iNewTime = str_replace('Novemberember', 'November', $iNewTime); $iNewTime = str_replace('Decemberember', 'December', $iNewTime); $iNewTime = str_replace($aFind, $aReplace, $iNewTime); $iNewTime = str_replace('PM', Phpfox::getPhrase('core.pm'), $iNewTime); $iNewTime = str_replace('AM', Phpfox::getPhrase('core.am'), $iNewTime); return $iNewTime; }
/** * Gets the offset from the current timezone being used to GMT. * * @param int $iTime Current time stamp to check * @return int Returns GMT offset */ public function getGmtOffset($iTime) { return Phpfox::getTimeZone(); }
<?php echo Phpfox::getPhrase('user.time_zone'); ?> : </div> <div class="table_right"> <select name="val[time_zone]"> <?php if (count((array) $this->_aVars['aTimeZones'])) { foreach ((array) $this->_aVars['aTimeZones'] as $this->_aVars['sTimeZoneKey'] => $this->_aVars['sTimeZone']) { ?> <option value="<?php echo $this->_aVars['sTimeZoneKey']; ?> "<?php if (Phpfox::getTimeZone() == $this->_aVars['sTimeZoneKey'] && !isset($this->_aVars['iTimeZonePosted']) || isset($this->_aVars['iTimeZonePosted']) && $this->_aVars['iTimeZonePosted'] == $this->_aVars['sTimeZoneKey'] || Phpfox::getParam('core.default_time_zone_offset') == $this->_aVars['sTimeZoneKey']) { ?> selected="selected"<?php } ?> ><?php echo $this->_aVars['sTimeZone']; ?> </option> <?php } } ?> </select> </div> <div class="clear"></div>