date.php 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. <?
  2. /**
  3. ** date.php
  4. **
  5. ** Takes a date and parses it into a usable format. The form that a
  6. ** date SHOULD arrive in is:
  7. ** <Tue,> 29 Jun 1999 09:52:11 -0500 (EDT)
  8. ** (as specified in RFC 822) -- "Tue" is optional
  9. **
  10. **/
  11. function getHour($hour) {
  12. $time = explode(":", $hour);
  13. return $time[0];
  14. }
  15. function getMinute($min) {
  16. $time = explode(":", $min);
  17. return $time[1];
  18. }
  19. function getSecond($sec) {
  20. $time = explode(":", $sec);
  21. return $time[2];
  22. }
  23. function getMonthNum($month) {
  24. if (eregi("jan|january", $month, $tmp))
  25. $date = "01";
  26. else if (eregi("feb|february|febuary", $month, $tmp))
  27. $date = "02";
  28. else if (eregi("mar|march", $month, $tmp))
  29. $date = "03";
  30. else if (eregi("apr|april", $month, $tmp))
  31. $date = "04";
  32. else if (eregi("may", $month, $tmp))
  33. $date = "05";
  34. else if (eregi("jun|june", $month, $tmp))
  35. $date = "06";
  36. else if (eregi("jul|july", $month, $tmp))
  37. $date = "07";
  38. else if (eregi("aug|august", $month, $tmp))
  39. $date = "08";
  40. else if (eregi("sep|sept|september", $month, $tmp))
  41. $date = "09";
  42. else if (eregi("oct|october", $month, $tmp))
  43. $date = "10";
  44. else if (eregi("nov|november", $month, $tmp))
  45. $date = "11";
  46. else if (eregi("dec|december", $month, $tmp))
  47. $date = "12";
  48. return $date;
  49. }
  50. function getDayOfWeek($day) {
  51. $date = "{WEEKDAY}";
  52. if (eregi("(mon|monday)", $day, $tmp))
  53. $date = "Mon";
  54. else if (eregi("(tue|tuesday)", $day, $tmp))
  55. $date = "Tue";
  56. else if (eregi("(wed|wednesday)", $day, $tmp))
  57. $date = "Wed";
  58. else if (eregi("(thurs|thu|thursday)", $day, $tmp))
  59. $date = "Thu";
  60. else if (eregi("(fri|friday)", $day, $tmp))
  61. $date = "Fri";
  62. else if (eregi("(sat|saturday)", $day, $tmp))
  63. $date = "Sat";
  64. else if (eregi("(sun|sunday)", $day, $tmp))
  65. $date = "Sun";
  66. return $date;
  67. }
  68. function getDayOfMonth($day) {
  69. return ereg_replace("^0", "", $day); /* remove a preceeding 0 */
  70. }
  71. function getMonth($month) {
  72. $date = "{MONTH}";
  73. if (eregi("jan|january", $month, $tmp))
  74. $date = "Jan";
  75. else if (eregi("feb|february|febuary", $month, $tmp))
  76. $date = "Feb";
  77. else if (eregi("mar|march", $month, $tmp))
  78. $date = "Mar";
  79. else if (eregi("apr|april", $month, $tmp))
  80. $date = "Apr";
  81. else if (eregi("may", $month, $tmp))
  82. $date = "May";
  83. else if (eregi("jun|june", $month, $tmp))
  84. $date = "Jun";
  85. else if (eregi("jul|july", $month, $tmp))
  86. $date = "Jul";
  87. else if (eregi("aug|august", $month, $tmp))
  88. $date = "Aug";
  89. else if (eregi("sep|sept|september", $month, $tmp))
  90. $date = "Sep";
  91. else if (eregi("oct|october", $month, $tmp))
  92. $date = "Oct";
  93. else if (eregi("nov|november", $month, $tmp))
  94. $date = "Nov";
  95. else if (eregi("dec|december", $month, $tmp))
  96. $date = "Dec";
  97. return $date;
  98. }
  99. function getYear($year) {
  100. return $year;
  101. }
  102. function getDateString($dateParts) {
  103. /** $dateParts[0] == <day of week> Mon, Tue, Wed
  104. ** $dateParts[1] == <day of month> 23
  105. ** $dateParts[2] == <month> Jan, Feb, Mar
  106. ** $dateParts[3] == <year> 1999
  107. ** $dateParts[4] == <time> 18:54:23 (HH:MM:SS)
  108. ** $dateParts[5] == <from GMT> +0100
  109. ** $dateParts[6] == <zone> (EDT)
  110. **
  111. ** NOTE: In RFC 822, it states that <day of week> is optional.
  112. ** In that case, dateParts[0] would be the <day of month>
  113. ** and everything would be bumped up one.
  114. **/
  115. /* if the first part is a day */
  116. if (eregi("mon|tue|wed|thu|fri|sat|sun", trim($dateParts[0]), $tmp)) {
  117. $dateParts[0] = getDayOfWeek(trim($dateParts[0]));
  118. $dateParts[1] = getDayOfMonth(trim($dateParts[1]));
  119. $dateParts[2] = getMonth(trim($dateParts[2]));
  120. $dateParts[3] = getYear(trim($dateParts[3]));
  121. return "$dateParts[2] $dateParts[1], $dateParts[3]";
  122. }
  123. $dateParts[0] = getDayOfMonth(trim($dateParts[0]));
  124. $dateParts[1] = getMonth(trim($dateParts[1]));
  125. $dateParts[2] = getYear(trim($dateParts[2]));
  126. return "$dateParts[1] $dateParts[0], $dateParts[2]";
  127. }
  128. function getTimeStamp($dateParts) {
  129. if (eregi("mon|tue|wed|thu|fri|sat|sun", $dateParts[0], $tmp)) {
  130. $d[0] = getHour(trim($dateParts[4]));
  131. $d[1] = getMinute(trim($dateParts[4]));
  132. $d[2] = getSecond(trim($dateParts[4]));
  133. $d[3] = getMonthNum(trim($dateParts[2]));
  134. $d[4] = getDayOfMonth(trim($dateParts[1]));
  135. $d[5] = getYear(trim($dateParts[3]));
  136. return mktime($d[0], $d[1], $d[2], $d[3], $d[4], $d[5]);
  137. }
  138. $d[0] = getHour(trim($dateParts[3]));
  139. $d[1] = getMinute(trim($dateParts[3]));
  140. $d[2] = getSecond(trim($dateParts[3]));
  141. $d[3] = getMonthNum(trim($dateParts[1]));
  142. $d[4] = getDayOfMonth(trim($dateParts[0]));
  143. $d[5] = getYear(trim($dateParts[2]));
  144. return mktime($d[0], $d[1], $d[2], $d[3], $d[4], $d[5]);
  145. }
  146. ?>