parseTimestamp(intval($time)); } else { $this->parseIso($time); } } /** * @param int $timestamp */ private function parseTimestamp(int $timestamp) { $this->year = intval(date('Y', $timestamp)); $this->month = intval(date('m', $timestamp)); $this->day = intval(date('d', $timestamp)); $this->hour = intval(date('H', $timestamp)); $this->minute = intval(date('i', $timestamp)); $this->second = intval(date('s', $timestamp)); } /** * @param string $iso */ private function parseIso(string $iso) { $this->year = substr($iso, 0, 4); $this->month = substr($iso, 4, 2); $this->day = substr($iso, 6, 2); $this->hour = substr($iso, 9, 2); $this->minute = substr($iso, 12, 2); $this->second = substr($iso, 15, 2); } /** * @return string */ public function getIso(): string { return $this->year . $this->month . $this->day . 'T' . $this->hour . ':' . $this->minute . ':' . $this->second; } /** * @return string */ public function getXml(): string { return '' . $this->getIso() . ''; } /** * @return false|int */ public function getTimestamp() { return mktime($this->hour, $this->minute, $this->second, $this->month, $this->day, $this->year); } }