DateTimeToExcel.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. // DateTime object Result Comments
  3. return [
  4. // Excel 1900 base calendar date
  5. [
  6. 1.0,
  7. new DateTime('1900-01-01'),
  8. ],
  9. // This and next test show gap for the mythical
  10. [
  11. 59.0,
  12. new DateTime('1900-02-28'),
  13. ],
  14. // MS Excel 1900 Leap Year
  15. [
  16. 61.0,
  17. new DateTime('1900-03-01'),
  18. ],
  19. // Unix Timestamp 32-bit Earliest Date
  20. [
  21. 714.0,
  22. new DateTime('1901-12-14'),
  23. ],
  24. [
  25. 1461.0,
  26. new DateTime('1903-12-31'),
  27. ],
  28. // Excel 1904 Calendar Base Date
  29. [
  30. 1462.0,
  31. new DateTime('1904-01-01'),
  32. ],
  33. [
  34. 1463.0,
  35. new DateTime('1904-01-02'),
  36. ],
  37. [
  38. 22269.0,
  39. new DateTime('1960-12-19'),
  40. ],
  41. // Unix Timestamp Base Date
  42. [
  43. 25569.0,
  44. new DateTime('1970-01-01'),
  45. ],
  46. [
  47. 30292.0,
  48. new DateTime('1982-12-07'),
  49. ],
  50. [
  51. 39611.0,
  52. new DateTime('2008-06-12'),
  53. ],
  54. // Unix Timestamp 32-bit Latest Date
  55. [
  56. 50424.0,
  57. new DateTime('2038-01-19'),
  58. ],
  59. [
  60. 1234.56789,
  61. new DateTime('1903-05-18 13:37:46'),
  62. ],
  63. [
  64. 12345.6789,
  65. new DateTime('1933-10-18 16:17:37'),
  66. ],
  67. [
  68. 73050.0,
  69. new DateTime('2099-12-31'),
  70. ],
  71. ];