mirror of
https://github.com/wassname/talk.git
synced 2026-09-09 11:38:08 +08:00
Calculate "until"
This commit is contained in:
@@ -61,3 +61,33 @@ export function separateDataAndRoot(
|
||||
root,
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Taken from: http://stackoverflow.com/questions/1197928/how-to-add-30-minutes-to-a-javascript-date-object.
|
||||
* Adds time to a date. Modelled after MySQL DATE_ADD function.
|
||||
* Example: dateAdd(new Date(), 'minute', 30) //returns 30 minutes from now.
|
||||
*
|
||||
* @param date Date to start with
|
||||
* @param interval One of: year, quarter, month, week, day, hour, minute, second
|
||||
* @param units Number of units of the given interval to add.
|
||||
*/
|
||||
export function dateAdd(date, interval, units) {
|
||||
let ret = new Date(date); // don't change original date
|
||||
const checkRollover = () => {
|
||||
if (ret.getDate() !== date.getDate()) {
|
||||
ret.setDate(0);
|
||||
}
|
||||
};
|
||||
switch(interval.toLowerCase()) {
|
||||
case 'year' : ret.setFullYear(ret.getFullYear() + units); checkRollover(); break;
|
||||
case 'quarter': ret.setMonth(ret.getMonth() + 3 * units); checkRollover(); break;
|
||||
case 'month' : ret.setMonth(ret.getMonth() + units); checkRollover(); break;
|
||||
case 'week' : ret.setDate(ret.getDate() + 7 * units); break;
|
||||
case 'day' : ret.setDate(ret.getDate() + units); break;
|
||||
case 'hour' : ret.setTime(ret.getTime() + units * 3600000); break;
|
||||
case 'minute' : ret.setTime(ret.getTime() + units * 60000); break;
|
||||
case 'second' : ret.setTime(ret.getTime() + units * 1000); break;
|
||||
default : ret = undefined; break;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user