bug41523.phpt 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. --TEST--
  2. Bug #41523 (strtotime('0000-00-00 00:00:00') is parsed as 1999-11-30) (32 bit)
  3. --SKIPIF--
  4. <?php if (PHP_INT_SIZE == 8) die("skip 32-bit only"); ?>
  5. --FILE--
  6. <?php
  7. date_default_timezone_set("UTC");
  8. var_dump( date_parse('0000-00-00 00:00:00') );
  9. var_dump( strtotime('0000-00-00 00:00:00') );
  10. var_dump( $dt = new DateTime('0000-00-00 00:00:00') );
  11. echo $dt->format( DateTime::ISO8601 ), "\n";
  12. ?>
  13. --EXPECTF--
  14. array(12) {
  15. ["year"]=>
  16. int(0)
  17. ["month"]=>
  18. int(0)
  19. ["day"]=>
  20. int(0)
  21. ["hour"]=>
  22. int(0)
  23. ["minute"]=>
  24. int(0)
  25. ["second"]=>
  26. int(0)
  27. ["fraction"]=>
  28. float(0)
  29. ["warning_count"]=>
  30. int(1)
  31. ["warnings"]=>
  32. array(1) {
  33. [20]=>
  34. string(27) "The parsed date was invalid"
  35. }
  36. ["error_count"]=>
  37. int(0)
  38. ["errors"]=>
  39. array(0) {
  40. }
  41. ["is_localtime"]=>
  42. bool(false)
  43. }
  44. Warning: strtotime(): Epoch doesn't fit in a PHP integer in %s on line %d
  45. bool(false)
  46. object(DateTime)#1 (3) {
  47. ["date"]=>
  48. string(27) "-0001-11-30 00:00:00.000000"
  49. ["timezone_type"]=>
  50. int(3)
  51. ["timezone"]=>
  52. string(3) "UTC"
  53. }
  54. -0001-11-30T00:00:00+0000