13 static ngx_uint_t mday[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
32 #if (NGX_SUPPRESS_WARN)
37 for (p = value; p < end; p++) {
48 for (p++; p < end; p++)
58 if (*p < '0' || *p >
'9' || *(p + 1) <
'0' || *(p + 1) >
'9') {
62 day = (*p -
'0') * 10 + *(p + 1) -
'0';
71 }
else if (*p ==
'-') {
84 month = *(p + 1) ==
'a' ? 0 : *(p + 2) ==
'n' ? 5 : 6;
92 month = *(p + 2) ==
'r' ? 2 : 4;
96 month = *(p + 1) ==
'p' ? 3 : 7;
121 if ((fmt == rfc822 && *p !=
' ') || (fmt == rfc850 && *p !=
'-')) {
128 if (*p < '0' || *p >
'9' || *(p + 1) <
'0' || *(p + 1) >
'9'
129 || *(p + 2) <
'0' || *(p + 2) >
'9'
130 || *(p + 3) <
'0' || *(p + 3) >
'9')
135 year = (*p -
'0') * 1000 + (*(p + 1) -
'0') * 100
136 + (*(p + 2) -
'0') * 10 + *(p + 3) -
'0';
139 }
else if (fmt == rfc850) {
140 if (*p < '0' || *p >
'9' || *(p + 1) <
'0' || *(p + 1) >
'9') {
144 year = (*p -
'0') * 10 + *(p + 1) -
'0';
145 year += (year < 70) ? 2000 : 1900;
154 if (*p < '0' || *p >
'9') {
161 if (*p < '0' || *p >
'9') {
165 day = day * 10 + *p++ -
'0';
177 if (*p < '0' || *p >
'9' || *(p + 1) <
'0' || *(p + 1) >
'9') {
181 hour = (*p -
'0') * 10 + *(p + 1) -
'0';
188 if (*p < '0' || *p >
'9' || *(p + 1) <
'0' || *(p + 1) >
'9') {
192 min = (*p -
'0') * 10 + *(p + 1) -
'0';
199 if (*p < '0' || *p >
'9' || *(p + 1) <
'0' || *(p + 1) >
'9') {
203 sec = (*p -
'0') * 10 + *(p + 1) -
'0';
212 if (*p < '0' || *p >
'9' || *(p + 1) <
'0' || *(p + 1) >
'9'
213 || *(p + 2) <
'0' || *(p + 2) >
'9'
214 || *(p + 3) <
'0' || *(p + 3) >
'9')
219 year = (*p -
'0') * 1000 + (*(p + 1) -
'0') * 100
220 + (*(p + 2) -
'0') * 10 + *(p + 3) -
'0';
223 if (hour > 23 || min > 59 || sec > 59) {
227 if (day == 29 && month == 1) {
228 if ((year & 3) || ((year % 100 == 0) && (year % 400) != 0)) {
232 }
else if (day > mday[month]) {
251 365 * year + year / 4 - year / 100 + year / 400
255 + 367 * month / 12 - 30
266 - 719527 + 31 + 28) * 86400 + hour * 3600 + min * 60 + sec;
268 #if (NGX_TIME_T_SIZE <= 4)
270 if (time > 0x7fffffff) {
276 return (time_t) time;