added ICE theme
[squirrelmail.git] / functions / date.php
CommitLineData
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?>