/** * test setting dates to specify weekdays */ public function testDay() { // all tests and calculations below are in GMT (that is intention for this test) $date = new Zend_Date(0, 'de_AT'); $date->setTimeZone('UTC'); $dw = $date->getDay(); $this->assertSame('01.01.1970 00:00:00', $dw->toString()); for ($day = 1; $day < 31; $day++) { $date->setDay($day); $dw = $date->getDay(); $weekday = str_pad($day, 2, '0', STR_PAD_LEFT); $this->assertSame("{$weekday}.01.1970 00:00:00", $dw->toString()); } }
/** * Get Interval for a year * * @param Zend_Date $dateStart * @param Zend_Date $dateEnd * @param bool $firstInterval * @return array */ protected function _getYearInterval(Zend_Date $dateStart, Zend_Date $dateEnd, $firstInterval) { $interval = array(); $interval['period'] = $dateStart->toString('yyyy'); $interval['start'] = $firstInterval ? $dateStart->toString('yyyy-MM-dd 00:00:00') : $dateStart->toString('yyyy-01-01 00:00:00'); $lastInterval = $dateStart->compareYear($dateEnd->getYear()) == 0; $interval['end'] = $lastInterval ? $dateStart->setMonth($dateEnd->getMonth())->setDay($dateEnd->getDay())->toString('yyyy-MM-dd 23:59:59') : $dateStart->toString('yyyy-12-31 23:59:59'); $dateStart->addYear(1); if ($dateStart->compareYear($dateEnd->getYear()) == 0) { $dateStart->setMonth(1)->setDay(1); } return $interval; }