changed the wording in the INSTALL and README files to better
[squirrelmail.git] / functions / date.php
... / ...
CommitLineData
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
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
39 function getHour($hour) {
40 $time = explode(":", $hour);
41 return $time[0];
42 }
43
44 function getMinute($min) {
45 $time = explode(":", $min);
46 return $time[1];
47 }
48
49 function getSecond($sec) {
50 $time = explode(":", $sec);
51 return $time[2];
52 }
53
54 function getMonthNum($month) {
55 if (eregi("jan|january", $month, $tmp))
56 $date = "01";
57 else if (eregi("feb|february|febuary", $month, $tmp))
58 $date = "02";
59 else if (eregi("mar|march", $month, $tmp))
60 $date = "03";
61 else if (eregi("apr|april", $month, $tmp))
62 $date = "04";
63 else if (eregi("may", $month, $tmp))
64 $date = "05";
65 else if (eregi("jun|june", $month, $tmp))
66 $date = "06";
67 else if (eregi("jul|july", $month, $tmp))
68 $date = "07";
69 else if (eregi("aug|august", $month, $tmp))
70 $date = "08";
71 else if (eregi("sep|sept|september", $month, $tmp))
72 $date = "09";
73 else if (eregi("oct|october", $month, $tmp))
74 $date = "10";
75 else if (eregi("nov|november", $month, $tmp))
76 $date = "11";
77 else if (eregi("dec|december", $month, $tmp))
78 $date = "12";
79
80 return $date;
81 }
82
83 function getDayOfWeek($day) {
84 $date = "{WEEKDAY}";
85
86 if (eregi("(mon|monday)", $day, $tmp))
87 $date = "Mon";
88 else if (eregi("(tue|tuesday)", $day, $tmp))
89 $date = "Tue";
90 else if (eregi("(wed|wednesday)", $day, $tmp))
91 $date = "Wed";
92 else if (eregi("(thurs|thu|thursday)", $day, $tmp))
93 $date = "Thu";
94 else if (eregi("(fri|friday)", $day, $tmp))
95 $date = "Fri";
96 else if (eregi("(sat|saturday)", $day, $tmp))
97 $date = "Sat";
98 else if (eregi("(sun|sunday)", $day, $tmp))
99 $date = "Sun";
100
101 return $date;
102 }
103
104 function getDayOfMonth($day) {
105 return ereg_replace("^0", "", $day); /* remove a preceeding 0 */
106 }
107
108 function getMonth($month) {
109 $date = "{MONTH}";
110 if (eregi("jan|january", $month, $tmp))
111 $date = "Jan";
112 else if (eregi("feb|february|febuary", $month, $tmp))
113 $date = "Feb";
114 else if (eregi("mar|march", $month, $tmp))
115 $date = "Mar";
116 else if (eregi("apr|april", $month, $tmp))
117 $date = "Apr";
118 else if (eregi("may", $month, $tmp))
119 $date = "May";
120 else if (eregi("jun|june", $month, $tmp))
121 $date = "Jun";
122 else if (eregi("jul|july", $month, $tmp))
123 $date = "Jul";
124 else if (eregi("aug|august", $month, $tmp))
125 $date = "Aug";
126 else if (eregi("sep|sept|september", $month, $tmp))
127 $date = "Sep";
128 else if (eregi("oct|october", $month, $tmp))
129 $date = "Oct";
130 else if (eregi("nov|november", $month, $tmp))
131 $date = "Nov";
132 else if (eregi("dec|december", $month, $tmp))
133 $date = "Dec";
134
135 return $date;
136 }
137
138 function getYear($year) {
139 return $year;
140 }
141
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)
150 **
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.
154 **/
155
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]";
163 }
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]";
168 }
169
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]);
179 }
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]);
187 }
188
189 function getLongDateString($stamp) {
190 $dateArray = getDate($stamp);
191
192 if ($dateArray["hours"] >= 12) {
193 $am_pm = "p.m.";
194 } else {
195 $am_pm = "a.m.";
196 }
197
198 if ($dateArray["hours"] >= 13) {
199 $dateArray["hours"] = $dateArray["hours"] - 12;
200 }
201
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
207
208 return "$dateParts[1] $dateParts[0], $dateParts[2] at $dateParts[3]:$dateParts[4] $am_pm";
209 }
210?>