bug80047.phpt 825 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. --TEST--
  2. Bug #80047: DatePeriod doesn't support custom DateTimeImmutable
  3. --INI--
  4. date.timezone=UTC
  5. --FILE--
  6. <?php
  7. class CustomDateTime extends DateTime {}
  8. class CustomDateTimeImmutable extends DateTimeImmutable {}
  9. $dt = new DateTime('2022-06-24');
  10. $dti = new DateTimeImmutable('2022-06-24');
  11. $cdt = new CustomDateTime('2022-06-25');
  12. $cdti = new CustomDateTimeImmutable('2022-06-25');
  13. $i = new DateInterval('P1D');
  14. $tests = [
  15. [ $dt, $i, $cdt ],
  16. [ $cdt, $i, $dt ],
  17. [ $cdt, $i, $cdt ],
  18. [ $dti, $i, $cdti ],
  19. [ $cdti, $i, $dti ],
  20. [ $cdti, $i, $cdti ],
  21. [ $cdt, $i, $cdti ],
  22. ];
  23. foreach ($tests as $test) {
  24. $dp = new DatePeriod(...$test);
  25. foreach ($dp as $date) {}
  26. echo get_class($date), "\n";
  27. }
  28. ?>
  29. --EXPECT--
  30. DateTime
  31. DateTime
  32. DateTime
  33. DateTimeImmutable
  34. DateTimeImmutable
  35. DateTimeImmutable
  36. DateTimeImmutable