b46802ae69d44dbb55b3917e3aa971db3d4724dd
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
12 function getMinutes($hour) {
15 if (($hour == 0) ||
($hour == "00"))
17 else if (($hour == 1) ||
($hour == "01"))
19 else if (($hour == 2) ||
($hour == "02"))
21 else if (($hour == 3) ||
($hour == "03"))
23 else if (($hour == 4) ||
($hour == "04"))
25 else if (($hour == 5) ||
($hour == "05"))
27 else if (($hour == 6) ||
($hour == "06"))
29 else if (($hour == 7) ||
($hour == "07"))
31 else if (($hour == 8) ||
($hour == "08"))
33 else if (($hour == 9) ||
($hour == "09"))
39 function getHour($hour) {
40 $time = explode(":", $hour);
44 function getMinute($min) {
45 $time = explode(":", $min);
49 function getSecond($sec) {
50 $time = explode(":", $sec);
54 function getMonthNum($month) {
55 if (eregi("jan|january", $month, $tmp))
57 else if (eregi("feb|february|febuary", $month, $tmp))
59 else if (eregi("mar|march", $month, $tmp))
61 else if (eregi("apr|april", $month, $tmp))
63 else if (eregi("may", $month, $tmp))
65 else if (eregi("jun|june", $month, $tmp))
67 else if (eregi("jul|july", $month, $tmp))
69 else if (eregi("aug|august", $month, $tmp))
71 else if (eregi("sep|sept|september", $month, $tmp))
73 else if (eregi("oct|october", $month, $tmp))
75 else if (eregi("nov|november", $month, $tmp))
77 else if (eregi("dec|december", $month, $tmp))
83 function getDayOfWeek($day) {
86 if (eregi("(mon|monday)", $day, $tmp))
88 else if (eregi("(tue|tuesday)", $day, $tmp))
90 else if (eregi("(wed|wednesday)", $day, $tmp))
92 else if (eregi("(thurs|thu|thursday)", $day, $tmp))
94 else if (eregi("(fri|friday)", $day, $tmp))
96 else if (eregi("(sat|saturday)", $day, $tmp))
98 else if (eregi("(sun|sunday)", $day, $tmp))
104 function getDayOfMonth($day) {
105 return ereg_replace("^0", "", $day); /* remove a preceeding 0 */
108 function getMonth($month) {
110 if (eregi("jan|january", $month, $tmp))
112 else if (eregi("feb|february|febuary", $month, $tmp))
114 else if (eregi("mar|march", $month, $tmp))
116 else if (eregi("apr|april", $month, $tmp))
118 else if (eregi("may", $month, $tmp))
120 else if (eregi("jun|june", $month, $tmp))
122 else if (eregi("jul|july", $month, $tmp))
124 else if (eregi("aug|august", $month, $tmp))
126 else if (eregi("sep|sept|september", $month, $tmp))
128 else if (eregi("oct|october", $month, $tmp))
130 else if (eregi("nov|november", $month, $tmp))
132 else if (eregi("dec|december", $month, $tmp))
138 function getYear($year) {
142 function getDateString($dateParts) {
143 /** $dateParts[0] == <day of week> Mon, Tue, Wed
144 ** $dateParts[1] == <day of month> 23
145 ** $dateParts[2] == <month> Jan, Feb, Mar
146 ** $dateParts[3] == <year> 1999
147 ** $dateParts[4] == <time> 18:54:23 (HH:MM:SS)
148 ** $dateParts[5] == <from GMT> +0100
149 ** $dateParts[6] == <zone> (EDT)
151 ** NOTE: In RFC 822, it states that <day of week> is optional.
152 ** In that case, dateParts[0] would be the <day of month>
153 ** and everything would be bumped up one.
156 /* if the first part is a day */
157 if (eregi("mon|tue|wed|thu|fri|sat|sun", trim($dateParts[0]), $tmp)) {
158 $dateParts[0] = getDayOfWeek(trim($dateParts[0]));
159 $dateParts[1] = getDayOfMonth(trim($dateParts[1]));
160 $dateParts[2] = getMonth(trim($dateParts[2]));
161 $dateParts[3] = getYear(trim($dateParts[3]));
162 return "$dateParts[2] $dateParts[1], $dateParts[3]";
164 $dateParts[0] = getDayOfMonth(trim($dateParts[0]));
165 $dateParts[1] = getMonth(trim($dateParts[1]));
166 $dateParts[2] = getYear(trim($dateParts[2]));
167 return "$dateParts[1] $dateParts[0], $dateParts[2]";
170 function getTimeStamp($dateParts) {
171 if (eregi("mon|tue|wed|thu|fri|sat|sun", $dateParts[0], $tmp)) {
172 $d[0] = getHour(trim($dateParts[4]));
173 $d[1] = getMinute(trim($dateParts[4]));
174 $d[2] = getSecond(trim($dateParts[4]));
175 $d[3] = getMonthNum(trim($dateParts[2]));
176 $d[4] = getDayOfMonth(trim($dateParts[1]));
177 $d[5] = getYear(trim($dateParts[3]));
178 return mktime($d[0], $d[1], $d[2], $d[3], $d[4], $d[5]);
180 $d[0] = getHour(trim($dateParts[3]));
181 $d[1] = getMinute(trim($dateParts[3]));
182 $d[2] = getSecond(trim($dateParts[3]));
183 $d[3] = getMonthNum(trim($dateParts[1]));
184 $d[4] = getDayOfMonth(trim($dateParts[0]));
185 $d[5] = getYear(trim($dateParts[2]));
186 return mktime($d[0], $d[1], $d[2], $d[3], $d[4], $d[5]);
189 function getLongDateString($stamp) {
190 $dateArray = getDate($stamp);
192 if ($dateArray["hours"] >= 12) {
198 if ($dateArray["hours"] >= 13) {
199 $dateArray["hours"] = $dateArray["hours"] - 12;
202 $dateParts[0] = getDayOfMonth($dateArray["mday"]);
203 $dateParts[1] = getMonth($dateArray["month"]);
204 $dateParts[2] = getYear($dateArray["year"]);
205 $dateParts[3] = $dateArray["hours"]; // hour
206 $dateParts[4] = getMinutes($dateArray["minutes"]); // minute
208 return "$dateParts[1] $dateParts[0], $dateParts[2] at $dateParts[3]:$dateParts[4] $am_pm";