/** * adds diff to date and applies dst fix * * @param Tinebase_DateTime $_dateInUTC * @param DateTimeInterval $_diff * @param string $_timezoneForDstFix */ public static function addUTCDateDstFix($_dateInUTC, $_diff, $_timezoneForDstFix) { $_dateInUTC->setTimezone($_timezoneForDstFix); $_dateInUTC->add($_dateInUTC->get('I') ? 1 : 0, Tinebase_DateTime::MODIFIER_HOUR); $_dateInUTC->add($_diff); $_dateInUTC->subHour($_dateInUTC->get('I') ? 1 : 0); $_dateInUTC->setTimezone('UTC'); }
/** * get string representation of first and last days of the week defined by date/week number * * @param Tinebase_DateTime $_date * @param integer $_weekNumber optional * @return array */ protected function _getFirstAndLastDayOfWeek(Tinebase_DateTime $_date, $_weekNumber = NULL) { $firstDayOfWeek = $this->_getFirstDayOfWeek(); if ($_weekNumber !== NULL) { $_date->setWeek($_weekNumber); } $dayOfWeek = $_date->get('w'); // in some locales sunday is last day of the week -> we need to init dayOfWeek with 7 $dayOfWeek = $firstDayOfWeek == 1 && $dayOfWeek == 0 ? 7 : $dayOfWeek; $_date->sub($dayOfWeek - $firstDayOfWeek, Tinebase_DateTime::MODIFIER_DAY); $firstDay = $_date->toString($this->_dateFormat); $_date->add(6, Tinebase_DateTime::MODIFIER_DAY); $lastDay = $_date->toString($this->_dateFormat); $result = array($firstDay, $lastDay); return $result; }