DateTime.from.phpt 1.2 KB

1234567891011121314151617181920212223242526272829303132
  1. <?php
  2. /**
  3. * Test: Nette\Utils\DateTime::from().
  4. */
  5. declare(strict_types=1);
  6. use Nette\Utils\DateTime;
  7. use Tester\Assert;
  8. require __DIR__ . '/../bootstrap.php';
  9. date_default_timezone_set('Europe/Prague');
  10. Assert::same('1978-01-23 11:40:00', (string) DateTime::from(254_400_000));
  11. Assert::same('1978-01-23 11:40:00', (string) (new DateTime)->setTimestamp(254_400_000));
  12. Assert::same(254_400_000, DateTime::from(254_400_000)->getTimestamp());
  13. Assert::same(time() + 60, (int) DateTime::from(60)->format('U'));
  14. Assert::same(PHP_VERSION_ID < 80100 ? '2050-08-13 11:40:00' : '2050-08-13 12:40:00', (string) DateTime::from(2_544_000_000));
  15. Assert::same(PHP_VERSION_ID < 80100 ? '2050-08-13 11:40:00' : '2050-08-13 12:40:00', (string) (new DateTime)->setTimestamp(2_544_000_000));
  16. Assert::same(is_int(2_544_000_000) ? 2_544_000_000 : '2544000000', DateTime::from(2_544_000_000)->getTimestamp()); // 64 bit
  17. Assert::same('1978-05-05 00:00:00', (string) DateTime::from('1978-05-05'));
  18. Assert::same((new DateTime)->format('Y-m-d H:i:s'), (string) DateTime::from(null));
  19. Assert::type(DateTime::class, DateTime::from(new DateTime('1978-05-05')));
  20. Assert::same('1978-05-05 12:00:00.123450', DateTime::from(new DateTime('1978-05-05 12:00:00.12345'))->format('Y-m-d H:i:s.u'));