mirror of
https://github.com/nginx/nginx.git
synced 2025-02-25 18:55:26 -06:00
ngx_next_time()
This commit is contained in:
parent
2ff9a4b334
commit
c271775902
@ -291,3 +291,42 @@ ngx_gmtime(time_t t, ngx_tm_t *tp)
|
|||||||
tp->ngx_tm_year = (ngx_tm_year_t) year;
|
tp->ngx_tm_year = (ngx_tm_year_t) year;
|
||||||
tp->ngx_tm_wday = (ngx_tm_wday_t) wday;
|
tp->ngx_tm_wday = (ngx_tm_wday_t) wday;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
time_t
|
||||||
|
ngx_next_time(time_t when)
|
||||||
|
{
|
||||||
|
time_t now, next;
|
||||||
|
struct tm tm;
|
||||||
|
|
||||||
|
now = ngx_time();
|
||||||
|
|
||||||
|
ngx_libc_localtime(now, &tm);
|
||||||
|
|
||||||
|
tm.tm_hour = (int) (when / 3600);
|
||||||
|
when %= 3600;
|
||||||
|
tm.tm_min = (int) (when / 60);
|
||||||
|
tm.tm_sec = (int) (when % 60);
|
||||||
|
|
||||||
|
next = mktime(&tm);
|
||||||
|
|
||||||
|
if (next == -1) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (next - now > 0) {
|
||||||
|
return next;
|
||||||
|
}
|
||||||
|
|
||||||
|
tm.tm_mday++;
|
||||||
|
|
||||||
|
/* mktime() should normalize a date (Jan 32, etc) */
|
||||||
|
|
||||||
|
next = mktime(&tm);
|
||||||
|
|
||||||
|
if (next != -1) {
|
||||||
|
return next;
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
@ -25,6 +25,9 @@ u_char *ngx_http_time(u_char *buf, time_t t);
|
|||||||
u_char *ngx_http_cookie_time(u_char *buf, time_t t);
|
u_char *ngx_http_cookie_time(u_char *buf, time_t t);
|
||||||
void ngx_gmtime(time_t t, ngx_tm_t *tp);
|
void ngx_gmtime(time_t t, ngx_tm_t *tp);
|
||||||
|
|
||||||
|
time_t ngx_next_time(time_t when);
|
||||||
|
#define ngx_next_time_n "mktime()"
|
||||||
|
|
||||||
|
|
||||||
extern volatile ngx_time_t *ngx_cached_time;
|
extern volatile ngx_time_t *ngx_cached_time;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user