diff options
Diffstat (limited to 'ext/date/lib/tm2unixtime.c')
| -rw-r--r-- | ext/date/lib/tm2unixtime.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/ext/date/lib/tm2unixtime.c b/ext/date/lib/tm2unixtime.c index a3d48c59c4..0f59d31516 100644 --- a/ext/date/lib/tm2unixtime.c +++ b/ext/date/lib/tm2unixtime.c @@ -205,15 +205,17 @@ static void do_adjust_relative(timelib_time* time) time->m += time->relative.m; time->y += time->relative.y; } + switch (time->relative.first_last_day_of) { - case 1: /* first */ + case TIMELIB_SPECIAL_FIRST_DAY_OF_MONTH: /* first */ time->d = 1; break; - case 2: /* last */ + case TIMELIB_SPECIAL_LAST_DAY_OF_MONTH: /* last */ time->d = 0; time->m++; break; } + timelib_do_normalize(time); } @@ -296,6 +298,15 @@ static void do_adjust_special_early(timelib_time* time) break; } } + switch (time->relative.first_last_day_of) { + case TIMELIB_SPECIAL_FIRST_DAY_OF_MONTH: /* first */ + time->d = 1; + break; + case TIMELIB_SPECIAL_LAST_DAY_OF_MONTH: /* last */ + time->d = 0; + time->m++; + break; + } timelib_do_normalize(time); } |
