getTime(); } elseif ($date === null || is_int($date)) { if ($date === null) $date = time(); } elseif (is_array($date)) { [$y, $m, $d] = $date; $date = mktime(0, 0, 0, $m, $d, $y); } elseif (is_string($date) && preg_match(self::PATTERN, $date, $ms)) { $d = intval($ms[1]); $m = intval($ms[2]); $y = intval($ms[3]); $date = mktime(0, 0, 0, $m, $d, $y); } else { throw ValueException::invalid_value($date, "date"); } return $date; } function __construct($date=null) { parent::__construct(false); if ($date !== false) { $this->setTime(self::parse_date($date)); } } protected function afterUpdate(): void { $this->wrapStart(); } }