Perform date calculations given a simple string pattern.
$ npm install @tuplo/datecalc
# or with yarn
$ yarn add @tuplo/datecalc
import datecalc from "@tuplo/datecalc";
Performs calculations assuming now by default
// assuming New Year's Day 2020, 14:00
// in two days, same time
datecalc("2D"); // → new Date('2020-01-03T14:00:00')
// two weeks ago
datecalc("-2W"); // → new Date('2019-12-18T14:00:00')
// in 15 minutes
datecalc("15m"); // → new Date('2020-01-01T14:15:00')
// tomorrow, two hours less than now
datecalc("1D -2h"); // → new Date('2020-01-02T12:00:00')
Performs successive calculations
// 58 years and 2 months from now, less 4 hours
datecalc("58Y 2M -4h"); // → new Date('2078-03-01T10:00:00')
Calculates from a given date
const birthday = new Date("1961-07-04T11:00:00");
// 58 years from birthday
datecaclc("58Y", birthday); // → new Date('2019-07-04T11:00:00')
Pattern | Period |
---|---|
D | Day |
W | Week |
M | Month |
Y | Year |
h | Hour |
m | Minute |
s | Second |
The pattern declaring what calculations to perform.
Format: /([0-9-]+[DWMYhms])/g
The starting moment from when to start calculating.
Default: new Date(Date.now())
Returns a new Date
Contributions are always welcome!