DATE.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <?php
  2. return [
  3. [6890, '18, 11, 11'], // year less than 1900, adds 1900 (1918-11-11)
  4. [44809, '122, 9, 5'], // year less than 1900, adds 1900 (2022-09-05)
  5. [693845, '1899, 9, 5'], // year less than 1900, adds 1900 (3799-09-05)
  6. [1, '1900, 1, 1'], // Excel 1900 Calendar BaseDate
  7. [59, '1900, 2, 28'], // Day before Excel mythical 1900 leap day
  8. [60, '1900, 2, 29'], // Excel mythical 1900 leap day
  9. [61, '1900, 3, 1'], // Day after Excel mythical 1900 leap day
  10. [713, '1901, 12, 13'], // Day after actual 1904 leap day
  11. [714, '1901, 12, 14'], // signed 32-bit Unix Timestamp Earliest Date
  12. [1461, '1903, 12, 31'], // Day before Excel 1904 Calendar Base Date
  13. [1462, '1904, 1, 1'], // Excel 1904 Calendar Base Date
  14. [1463, '1904, 1, 2'], // Day after Excel 1904 Calendar Base Date
  15. [22269, '1960, 12, 19'],
  16. [25569, '1970, 1, 1'], // Unix Timestamp Base Date
  17. [30292, '1982, 12, 7'],
  18. [39611, '2008, 6, 12'],
  19. [50000, '2036, 11, 21'],
  20. [50424, '2038, 1, 19'], // 32-bit signed Unix Timestamp Latest Date
  21. [50425, '2038, 1, 20'], // Day after 32-bit signed Unix Timestamp Latest Date
  22. [39448, '2008, 1, 1'],
  23. [39447, '2008, 1, Q15'],
  24. [39446, '2008, 1, -1'],
  25. [39417, '2008, 1, -30'],
  26. [39416, '2008, 1, -31'],
  27. [39082, '2008, 1, -365'],
  28. [39508, '2008, 3, 1'],
  29. [39507, '2008, 3, Q15'],
  30. [39506, '2008, 3, -1'],
  31. [39142, '2008, 3, -365'],
  32. [39417, '2008, Q15, 1'],
  33. [39387, '2008, -1, 1'],
  34. [39083, '2008, -11, 1'],
  35. [39052, '2008, -12, 1'],
  36. [39022, '2008, -13, 1'],
  37. [39051, '2008, -13, 30'],
  38. [39021, '2008, -13, Q15'],
  39. [38991, '2008, -13, -30'],
  40. [38990, '2008, -13, -31'],
  41. [39814, '2008, 13, 1'],
  42. [39507, '2007, 15, Q15'],
  43. [40210, '2008, 26, 1'],
  44. [40199, '2008, 26, -10'],
  45. [38686, '2008, -26, 61'],
  46. [39641, '2010, -15, -50'],
  47. [39741, '2010, -15, 50'],
  48. [40552, '2010, 15, -50'],
  49. [40652, '2010, 15, 50'],
  50. [40179, '2010, 1.5, 1'],
  51. [40178, '2010, 1.5, 0'],
  52. [40148, '2010, 0, 1.5'],
  53. [40179, '2010, 1, 1.5'],
  54. [41075, '2012, 6, 15'],
  55. [41060, '2012, 6, Q15'],
  56. [40892, '2012, Q15, 15'],
  57. [167, 'Q15, 6, 15'],
  58. [3819, '10, 6, 15'],
  59. [3622, '10, Q15, Q16'],
  60. [274, 'Q14, 10, Q15'],
  61. ['#NUM!', 'Q14, Q15, 10'],
  62. ['#NUM!', '-20, Q14, Q15'],
  63. ['#NUM!', '-20, 6, 15'],
  64. [2958465, '9999, 12, 31'], // Excel maximum date
  65. ['#NUM!', '10000, 1, 1'], // Exceeded Excel maximum date
  66. [39670, '2008, 8, 10'],
  67. [39813, '2008, 12, 31'],
  68. [39692, '2008, 8, 32'],
  69. [39844, '2008, 13, 31'],
  70. [39813, '2009, 1, 0'],
  71. [39812, '2009, 1, -1'],
  72. [39782, '2009, 0, 0'],
  73. [39781, '2009, 0, -1'],
  74. [39752, '2009, -1, 0'],
  75. [39751, '2009, -1, -1'],
  76. [40146, '2010, 0, -1'],
  77. [40329, '2010, 5, 31'],
  78. [40199, '2010, 1, "21st"'], // Excel can't parse ordinal, PhpSpreadsheet can
  79. [40258, '2010, "March", "21st"'], // ordinal and month name
  80. // MS Excel will fail with a #VALUE return, but PhpSpreadsheet can parse this date
  81. [40258, '2010, "March", 21'], // Excel can't parse month name, PhpSpreadsheet can
  82. ['#VALUE!', '"ABC", 1, 21'],
  83. ['#VALUE!', '2010, "DEF", 21'],
  84. ['#VALUE!', '2010, 3, "GHI"'],
  85. ['exception', '2010, 3'],
  86. ];