bug51393.phpt 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. --TEST--
  2. Bug #51393 (DateTime::createFromFormat() fails if format string contains timezone)
  3. --INI--
  4. date.timezone=UTC
  5. --FILE--
  6. <?php
  7. $dt = DateTime::createFromFormat('O', '+0800');
  8. var_dump($dt->getOffset());
  9. $dt = DateTime::createFromFormat('P', '+08:00');
  10. var_dump($dt->getOffset());
  11. $dt = DateTime::createFromFormat('O', '-0800');
  12. var_dump($dt->getOffset());
  13. $dt = DateTime::createFromFormat('P', '-08:00');
  14. var_dump($dt->getOffset());
  15. $dt = DateTime::createFromFormat('[O]', '[+0800]');
  16. var_dump($dt->getOffset());
  17. $dt = DateTime::createFromFormat('[P]', '[+08:00]');
  18. var_dump($dt->getOffset());
  19. $dt = DateTime::createFromFormat('[O]', '[-0800]');
  20. var_dump($dt->getOffset());
  21. $dt = DateTime::createFromFormat('[P]', '[-08:00]');
  22. var_dump($dt->getOffset());
  23. $dt = DateTime::createFromFormat('O', 'GMT+0800');
  24. var_dump($dt->getOffset());
  25. $dt = DateTime::createFromFormat('P', 'GMT+08:00');
  26. var_dump($dt->getOffset());
  27. $dt = DateTime::createFromFormat('O', 'GMT-0800');
  28. var_dump($dt->getOffset());
  29. $dt = DateTime::createFromFormat('P', 'GMT-08:00');
  30. var_dump($dt->getOffset());
  31. $dt = DateTime::createFromFormat('[O]', '[GMT+0800]');
  32. var_dump($dt->getOffset());
  33. $dt = DateTime::createFromFormat('[P]', '[GMT+08:00]');
  34. var_dump($dt->getOffset());
  35. $dt = DateTime::createFromFormat('[O]', '[GMT-0800]');
  36. var_dump($dt->getOffset());
  37. $dt = DateTime::createFromFormat('[P]', '[GMT-08:00]');
  38. var_dump($dt->getOffset());
  39. $dt = DateTime::createFromFormat('O', 'invalid');
  40. var_dump($dt);
  41. ?>
  42. --EXPECT--
  43. int(28800)
  44. int(28800)
  45. int(-28800)
  46. int(-28800)
  47. int(28800)
  48. int(28800)
  49. int(-28800)
  50. int(-28800)
  51. int(28800)
  52. int(28800)
  53. int(-28800)
  54. int(-28800)
  55. int(28800)
  56. int(28800)
  57. int(-28800)
  58. int(-28800)
  59. bool(false)