reschedule
This function reschedules the date provided to a different date. At least 3 parameters are required: The date, and at least one pair
of two rescheduling parameters. Additional pairs of rescheduling parameters can be added which is useful to make a big rescheduling
first, e.g. next year, followed by a smaller rescheduling, e.g. the 2nd week in that year.
The parameters are not case-senstitive.
Following rescheduling parameter pairs are supported to reschedule dates whereas time information, if inside the date, remains unchanged:
rescheduling parameter 1 | rescheduling parameter 2 | description |
---|---|---|
next | day (or days) | Reschedules to next date (tomorrow) |
previous | day (or days) | reschedules to previous date (yesterday) |
1, 2, 3, ... | day (or days) | reschedules to next 1, 2, 3, ... days to the future |
-1, -2, -3, ... | day (or days) | reschedules to next 1, 2, 3, ... days to the past |
day | number (1..31) | rescheudles to nth day in the date (same year, same month) |
begin | week (or weeks) | reschedules to begin of week (Monday) if date is not on a Monday |
end | week (or weeks) | reschedules to end of week (Sudnay) if date is not on a Sunday |
next | week (or weeks) | advances by 7 days |
previous | week (or weeks) | moves 7 days backward |
1, 2, 3, ... | week (or weeks) | advances 7, 14, 21, ... days |
-1, -2, -3, ... | week (or weeks) | moves 7, 14, 21, ... days backward |
week | number (1..53) | reschedules to nth week in year. Resulting date will always be Mondays. |
begin | month (or months) | reschedules to begin (1st day) of month |
end | month (or months) | reschedules to end (last day) of month |
next | month (or months) | reschedules to next month, see 1 |
previous | month (or months) | reschedules to previous month, see 1 |
1, 2, 3, ... | month (or months) | reschedules to next 1, 2, 3, ... months, see 1 |
-1, -2, -3, ... | month (or months) | reschedules to previous 1, 2, 3, ... months, see 1 |
month | number (1..12) | reschedules to nth month, keeping the day unchanged where possible 1 |
begin | quarter (or quarters) | reschedules to begin of quarter (1. January, 1. April, 1. July, 1. October) |
end | quarter (or quarters) | reschedules to end of quarter (31. January, 30. June, 30. September, 31. December) |
next | quarter (or quarters) | reschedules to next quarter, see 1 |
previous | quarter (or quarters) | reschedules to previous quarter, see 1 |
1, 2, 3, ... | quarter (or quarters) | reschedules to next 1, 2, 3, ... quarters, see 1 |
-1, -2, -3, ... | quarter (or quarters) | reschedules to previous 1, 2, 3, ... quarters, see 1 |
quarter | number (1..4) | reschedules to 1st month of corresponding quarter, see 1 |
begin | year (or years) | reschedules to begin of year (1. January) |
end | year (or years) | reschedules to end of year (31. December) |
next | year (or years) | reschedules to same date on next year. For leapyears, see 1 |
previous | year (or years) | reschedules to same date on previous year. For leapyears, see 1 |
1, 2, 3, ... | year (or years) | reschedules to next 1, 2, 3, ... years. For leapyears, see 1 |
-1, -2, -3, ... | year (or years) | reschedules to previous 1, 2, 3, ... years. For leapyears, see 1 |
year | 4-digit year, e.g. 2020 | rescheudles to a specified year, see 1 |
1 If the day in the date is bigger then the number of months to be rescheudled to (e.g. 31. March to February), then the day will be adjusted to last day of the month accordingly.
Following rescheduling parameter pairs are supported to reschedule date and time combinations (00:00:00 is assumed as initial time if no time is provided):
rescheduling parameter 1 | rescheduling parameter 2 | description |
---|---|---|
begin | day (or days) | Same day, reschedules to 00:00:00 |
end | day (or days) | Same day, reschedules to 23:59:59 |
begin | hour (or hours) | Same day, reschedules to hh:00:00 (hh = current hour) |
end | hour (or hours) | Same day, reschedules to hh:59:59 (hh = current hour) |
next | hour (or hours) | Reschedules to next hour, see 2 |
previous | hour (or hours) | Reschedules to previous hour, see 2 |
1, 2, 3, ... | hour (or hours) | Reschedules to next 1, 2, 3, ... hours, see 2 |
-1, -2, -3, ... | hour (or hours) | Reschedules to previous 1, 2, 3, ... hours, see 2 |
hour | number (0..23) | Reschedules to a specified hour |
begin | minute (or minutes) | Same day, reschedules to hh:mm:00 (hh:mm = current hour and minute) |
end | minute (or minutes) | Same day, reschedules to hh:mm:59 (hh:mm = current hour and minute) |
next | minute (or minutes) | Reschedules to next minute, see 2 |
previous | minute (or minutes) | Reschedules to previous minute, see 2 |
1, 2, 3, ... | minute (or minutes) | Reschedules to next 1, 2, 3, ... minutes, see 2 |
-1, -2, -3, ... | minute (or minutes) | Reschedules to previous 1, 2, 3, ... minutes, see 2 |
minute | number (0..59) | Reschedules to a specified minute |
begin | second (or seconds) | No impact, value stays unchanged |
end | second (or seconds) | No impact, value stays unchanged |
next | second (or seconds) | Reschedules to next second, see 2 |
previous | second (or seconds) | Reschedules to previous second, see 2 |
1, 2, 3, ... | second (or seconds) | Reschedules to next 1, 2, 3, ... seconds, see 2 |
-1, -2, -3, ... | second (or seconds) | Reschedules to previous 1, 2, 3, ... seconds, see 2 |
second | number (0..59) | Reschedules to a specified second |
Indirect parameter passing is disabled
3, 5, 7, ...
No. | Type | Description |
---|---|---|
1 input |
date or string converted to date | Date Date to reschedule |
2, Opt 4,... input |
string numeral |
Rescheduling parameter 1 See table above |
3, Opt 5,... input |
string numeral |
Rescheduling parameter 2 See table above |
Type | Description |
---|---|
date | rescheduled date Rescheduled date. Plain dates remain as plain dates regardless how they are rescheduled. |
echo( reschedule ( "2011-12-24", -1, days )); // 2011-12-23
echo( reschedule ( "2012-01-31", 1, month )); // 2012-02-29
echo( reschedule ( "2011-12-06", end, month )); // 2011-12-31
echo( reschedule ( "2011-03-04", next, week)); // 2011-03-11
echo( reschedule ( "2011-03-04", day, 5)); // 2011-03-05
echo( reschedule ( "2012-12-31", next, week, end, week)); // 2013-01-13
echo( reschedule ( "2011-03-04", week, 25)); // 2011-06-20
echo( reschedule ("", 1, day)); // Returns blank date
echo( reschedule ( now, time, "15:30" )); // Changes time to 15:30.
2011-12-23
2012-02-29
2011-12-31
2011-03-11
2011-03-05
2013-01-13
2011-06-20
2024-07-14 15:30:00