date.php 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  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 getMinutes($hour) {
  12. $date = $hour;
  13. if (($hour == 0) || ($hour == "00"))
  14. $date = "00";
  15. else if (($hour == 1) || ($hour == "01"))
  16. $date = "01";
  17. else if (($hour == 2) || ($hour == "02"))
  18. $date = "02";
  19. else if (($hour == 3) || ($hour == "03"))
  20. $date = "03";
  21. else if (($hour == 4) || ($hour == "04"))
  22. $date = "04";
  23. else if (($hour == 5) || ($hour == "05"))
  24. $date = "05";
  25. else if (($hour == 6) || ($hour == "06"))
  26. $date = "06";
  27. else if (($hour == 7) || ($hour == "07"))
  28. $date = "07";
  29. else if (($hour == 8) || ($hour == "08"))
  30. $date = "08";
  31. else if (($hour == 9) || ($hour == "09"))
  32. $date = "09";
  33. return $date;
  34. }
  35. // corrects a time stamp to be the local time
  36. function getGMTSeconds($stamp, $gmt) {
  37. if (substr($gmt, 0, 1) == "-") {
  38. $neg = true;
  39. $gmt = substr($gmt, 1, strlen($gmt));
  40. } else if (substr($gmt, 0, 1) == "+") {
  41. $neg = false;
  42. $gmt = substr($gmt, 1, strlen($gmt));
  43. } else
  44. $neg = false;
  45. $gmt = substr($gmt, 0, 2);
  46. $gmt = $gmt * 3600;
  47. if ($neg == true)
  48. $gmt = "-$gmt";
  49. else
  50. $gmt = "+$gmt";
  51. /** now find what the server is at **/
  52. $current = date("Z", time());
  53. $stamp = (int)$stamp - (int)$gmt + (int)$current;
  54. return $stamp;
  55. }
  56. function getHour($hour) {
  57. $time = explode(":", $hour);
  58. return $time[0];
  59. }
  60. function getMinute($min) {
  61. $time = explode(":", $min);
  62. return $time[1];
  63. }
  64. function getSecond($sec) {
  65. $time = explode(":", $sec);
  66. return $time[2];
  67. }
  68. function getMonthNum($month) {
  69. if (eregi("jan|january", $month, $tmp))
  70. $date = "01";
  71. else if (eregi("feb|february|febuary", $month, $tmp))
  72. $date = "02";
  73. else if (eregi("mar|march", $month, $tmp))
  74. $date = "03";
  75. else if (eregi("apr|april", $month, $tmp))
  76. $date = "04";
  77. else if (eregi("may", $month, $tmp))
  78. $date = "05";
  79. else if (eregi("jun|june", $month, $tmp))
  80. $date = "06";
  81. else if (eregi("jul|july", $month, $tmp))
  82. $date = "07";
  83. else if (eregi("aug|august", $month, $tmp))
  84. $date = "08";
  85. else if (eregi("sep|sept|september", $month, $tmp))
  86. $date = "09";
  87. else if (eregi("oct|october", $month, $tmp))
  88. $date = "10";
  89. else if (eregi("nov|november", $month, $tmp))
  90. $date = "11";
  91. else if (eregi("dec|december", $month, $tmp))
  92. $date = "12";
  93. return $date;
  94. }
  95. function getDayOfWeek($day) {
  96. $date = "{WEEKDAY}";
  97. if (eregi("(mon|monday)", $day, $tmp))
  98. $date = "Mon";
  99. else if (eregi("(tue|tuesday)", $day, $tmp))
  100. $date = "Tue";
  101. else if (eregi("(wed|wednesday)", $day, $tmp))
  102. $date = "Wed";
  103. else if (eregi("(thurs|thu|thursday)", $day, $tmp))
  104. $date = "Thu";
  105. else if (eregi("(fri|friday)", $day, $tmp))
  106. $date = "Fri";
  107. else if (eregi("(sat|saturday)", $day, $tmp))
  108. $date = "Sat";
  109. else if (eregi("(sun|sunday)", $day, $tmp))
  110. $date = "Sun";
  111. return $date;
  112. }
  113. function getDayOfMonth($day) {
  114. return ereg_replace("^0", "", $day); /* remove a preceeding 0 */
  115. }
  116. function getMonth($month) {
  117. $date = "{MONTH}";
  118. if (eregi("jan|january", $month, $tmp))
  119. $date = "Jan";
  120. else if (eregi("feb|february|febuary", $month, $tmp))
  121. $date = "Feb";
  122. else if (eregi("mar|march", $month, $tmp))
  123. $date = "Mar";
  124. else if (eregi("apr|april", $month, $tmp))
  125. $date = "Apr";
  126. else if (eregi("may", $month, $tmp))
  127. $date = "May";
  128. else if (eregi("jun|june", $month, $tmp))
  129. $date = "Jun";
  130. else if (eregi("jul|july", $month, $tmp))
  131. $date = "Jul";
  132. else if (eregi("aug|august", $month, $tmp))
  133. $date = "Aug";
  134. else if (eregi("sep|sept|september", $month, $tmp))
  135. $date = "Sep";
  136. else if (eregi("oct|october", $month, $tmp))
  137. $date = "Oct";
  138. else if (eregi("nov|november", $month, $tmp))
  139. $date = "Nov";
  140. else if (eregi("dec|december", $month, $tmp))
  141. $date = "Dec";
  142. return $date;
  143. }
  144. function getYear($year) {
  145. return $year;
  146. }
  147. function getLongDateString($stamp) {
  148. return date("D, F j, Y g:i a", $stamp);
  149. }
  150. function getDateString($stamp) {
  151. return date("M j, Y", $stamp);
  152. }
  153. function getTimeStamp($dateParts) {
  154. /** $dateParts[0] == <day of week> Mon, Tue, Wed
  155. ** $dateParts[1] == <day of month> 23
  156. ** $dateParts[2] == <month> Jan, Feb, Mar
  157. ** $dateParts[3] == <year> 1999
  158. ** $dateParts[4] == <time> 18:54:23 (HH:MM:SS)
  159. ** $dateParts[5] == <from GMT> +0100
  160. ** $dateParts[6] == <zone> (EDT)
  161. **
  162. ** NOTE: In RFC 822, it states that <day of week> is optional.
  163. ** In that case, dateParts[0] would be the <day of month>
  164. ** and everything would be bumped up one.
  165. **/
  166. if (eregi("mon|tue|wed|thu|fri|sat|sun", $dateParts[0], $tmp)) {
  167. $d[0] = getHour(trim($dateParts[4]));
  168. $d[1] = getMinute(trim($dateParts[4]));
  169. $d[2] = getSecond(trim($dateParts[4]));
  170. $d[3] = getMonthNum(trim($dateParts[2]));
  171. $d[4] = getDayOfMonth(trim($dateParts[1]));
  172. $d[5] = getYear(trim($dateParts[3]));
  173. return getGMTSeconds(mktime($d[0], $d[1], $d[2], $d[3], $d[4], $d[5]), $dateParts[5]);
  174. }
  175. $d[0] = getHour(trim($dateParts[3]));
  176. $d[1] = getMinute(trim($dateParts[3]));
  177. $d[2] = getSecond(trim($dateParts[3]));
  178. $d[3] = getMonthNum(trim($dateParts[1]));
  179. $d[4] = getDayOfMonth(trim($dateParts[0]));
  180. $d[5] = getYear(trim($dateParts[2]));
  181. return getGMTSeconds(mktime($d[0], $d[1], $d[2], $d[3], $d[4], $d[5]), $dateParts[4]);
  182. }
  183. ?>