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