bug43452.phpt 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. --TEST--
  2. Bug #43452 ("weekday" is not equivalent to "1 weekday" of the current weekday is "weekday")
  3. --FILE--
  4. <?php
  5. date_default_timezone_set('Europe/Oslo');
  6. // <day> is equivalent to 1 <day> and will *not* forward if the current day
  7. // (November 1st) is the same day of week.
  8. $day = strtotime( "Thursday Nov 2007" );
  9. echo date( DateTime::ISO8601, $day ), "\n";
  10. $day = strtotime( "1 Thursday Nov 2007" );
  11. echo date( DateTime::ISO8601, $day ), "\n";
  12. $day = strtotime( "2 Thursday Nov 2007" );
  13. echo date( DateTime::ISO8601, $day ), "\n";
  14. $day = strtotime( "3 Thursday Nov 2007" );
  15. echo date( DateTime::ISO8601, $day ), "\n\n";
  16. // forward one week, then behaves like above for week days
  17. $day = strtotime( "Thursday Nov 2007" );
  18. echo date( DateTime::ISO8601, $day ), "\n";
  19. $day = strtotime( "+1 week Thursday Nov 2007" );
  20. echo date( DateTime::ISO8601, $day ), "\n";
  21. $day = strtotime( "+2 week Thursday Nov 2007" );
  22. echo date( DateTime::ISO8601, $day ), "\n";
  23. $day = strtotime( "+3 week Thursday Nov 2007" );
  24. echo date( DateTime::ISO8601, $day ), "\n\n";
  25. // First, second, etc skip to the first/second weekday *after* the current day.
  26. // This makes "first thursday" equivalent to "+1 week thursday" - but only
  27. // if the current day-of-week is the one mentioned in the phrase.
  28. $day = strtotime( "Thursday Nov 2007" );
  29. echo date( DateTime::ISO8601, $day ), "\n";
  30. $day = strtotime( "first Thursday Nov 2007" );
  31. echo date( DateTime::ISO8601, $day ), "\n";
  32. $day = strtotime( "second Thursday Nov 2007" );
  33. echo date( DateTime::ISO8601, $day ), "\n";
  34. $day = strtotime( "third Thursday Nov 2007" );
  35. echo date( DateTime::ISO8601, $day ), "\n\n";
  36. // Now the same where the current day-of-week does not match the one in the
  37. // phrase.
  38. $day = strtotime( "Friday Nov 2007" );
  39. echo date( DateTime::ISO8601, $day ), "\n";
  40. $day = strtotime( "first Friday Nov 2007" );
  41. echo date( DateTime::ISO8601, $day ), "\n";
  42. $day = strtotime( "second Friday Nov 2007" );
  43. echo date( DateTime::ISO8601, $day ), "\n";
  44. $day = strtotime( "third Friday Nov 2007" );
  45. echo date( DateTime::ISO8601, $day ), "\n\n";
  46. ?>
  47. --EXPECT--
  48. 2007-11-01T00:00:00+0100
  49. 2007-11-01T00:00:00+0100
  50. 2007-11-08T00:00:00+0100
  51. 2007-11-15T00:00:00+0100
  52. 2007-11-01T00:00:00+0100
  53. 2007-11-08T00:00:00+0100
  54. 2007-11-15T00:00:00+0100
  55. 2007-11-22T00:00:00+0100
  56. 2007-11-01T00:00:00+0100
  57. 2007-11-08T00:00:00+0100
  58. 2007-11-15T00:00:00+0100
  59. 2007-11-22T00:00:00+0100
  60. 2007-11-02T00:00:00+0100
  61. 2007-11-02T00:00:00+0100
  62. 2007-11-09T00:00:00+0100
  63. 2007-11-16T00:00:00+0100