/** * Take a \DateTime object and get the date of the first day of its week * dependant on global application settings. * * @param \DateTime $date A given date * @param boolean $clock The locale week start day or time clock week start day * * @return \DateTime */ public function getFirstDayOfWeek(\DateTime $date, $clock = false) { if ($clock) { $day = $this->appSettings->getWeekStartDayClock(); } else { $day = $this->appSettings->getWeekStartDay(); } $firstDay = idate('w', strtotime($day)); $offset = 7 - $firstDay; $ret = clone $date; $ret->modify(-(($date->format('w') + $offset) % 7) . 'days'); $ret->modify('midnight'); return $ret; }
/** * Run tests to ensure the output is correct for set/getWeekStartDay * * @return void */ public function testWeekStartDay() { $settings = new Settings(); $settings->setWeekStartDay("sunday"); $this->assertEquals("sunday", $settings->getWeekStartDay()); }