format()); self::assertEquals("05/04/2024 09:15:23", strval($date)); self::assertSame(2024, $date->year); self::assertSame(4, $date->month); self::assertSame(5, $date->day); self::assertSame(9, $date->hour); self::assertSame(15, $date->minute); self::assertSame(23, $date->second); self::assertSame(5, $date->wday); self::assertSame(14, $date->wnum); self::assertEquals("+04:00", $date->timezone); self::assertSame("05/04/2024 09:15:23", $date->datetime); self::assertSame("05/04/2024", $date->date); self::assertSame("20240405", $date->Ymd); self::assertSame("20240405T091523", $date->YmdHMS); self::assertSame("20240405T091523+04:00", $date->YmdHMSZ); } function testDateTimeZ() { $date = new DateTime("20240405T091523Z"); self::assertSame("20240405T091523", $date->YmdHMS); self::assertSame("20240405T091523Z", $date->YmdHMSZ); } function testClone() { $date = self::dt("now"); $clone = DateTime::clone($date); self::assertInstanceOf(DateTime::class, $clone); } function testConstruct() { $y = date("Y"); self::assertSame("05/04/$y 00:00:00", strval(new DateTime("5/4"))); self::assertSame("05/04/2024 00:00:00", strval(new DateTime("5/4/24"))); self::assertSame("05/04/2024 00:00:00", strval(new DateTime("5/4/2024"))); self::assertSame("05/04/2024 00:00:00", strval(new DateTime("05/04/2024"))); self::assertSame("05/04/2024 00:00:00", strval(new DateTime("20240405"))); self::assertSame("05/04/2024 00:00:00", strval(new DateTime("240405"))); self::assertSame("05/04/2024 09:15:23", strval(new DateTime("20240405T091523"))); self::assertSame("05/04/2024 09:15:23", strval(new DateTime("20240405T091523Z"))); self::assertSame("05/04/2024 09:15:23", strval(new DateTime("5/4/2024 9:15:23"))); self::assertSame("05/04/2024 09:15:23", strval(new DateTime("5/4/2024 9.15.23"))); self::assertSame("05/04/2024 09:15:00", strval(new DateTime("5/4/2024 9:15"))); self::assertSame("05/04/2024 09:15:00", strval(new DateTime("5/4/2024 9.15"))); self::assertSame("05/04/2024 09:15:00", strval(new DateTime("5/4/2024 9h15"))); self::assertSame("05/04/2024 09:15:23", strval(new DateTime("5/4/2024 09:15:23"))); self::assertSame("05/04/2024 09:15:00", strval(new DateTime("5/4/2024 09:15"))); self::assertSame("05/04/2024 09:15:00", strval(new DateTime("5/4/2024 09h15"))); } function testCompare() { $a = new DateTime("10/02/2024"); $a2 = new DateTime("10/02/2024 8:30"); $a3 = new DateTime("10/02/2024 15:45"); $b = new DateTime("15/02/2024"); $b2 = new DateTime("15/02/2024 8:30"); $b3 = new DateTime("15/02/2024 15:45"); $x = new DateTime("10/02/2024"); $x2 = new DateTime("10/02/2024 8:30"); $x3 = new DateTime("10/02/2024 15:45"); self::assertTrue($a == $x); self::assertFalse($a === $x); self::assertTrue($a2 == $x2); self::assertTrue($a3 == $x3); self::assertFalse($a < $a); self::assertTrue($a < $a2); self::assertTrue($a < $a3); self::assertTrue($a < $b); self::assertTrue($a < $b2); self::assertTrue($a < $b3); self::assertTrue($a <= $a); self::assertTrue($a <= $a2); self::assertTrue($a <= $a3); self::assertTrue($a <= $b); self::assertTrue($a <= $b2); self::assertTrue($a <= $b3); self::assertTrue($b > $a); self::assertTrue($b > $a2); self::assertTrue($b > $a3); self::assertFalse($b > $b); self::assertFalse($b > $b2); self::assertFalse($b > $b3); self::assertTrue($b >= $a); self::assertTrue($b >= $a2); self::assertTrue($b >= $a3); self::assertTrue($b >= $b); self::assertFalse($b >= $b2); self::assertFalse($b >= $b3); } }