Given an AMAZON.DATE returns an object with the relative start and end date.
npm install amazon-date-parser
var AmazonDateParser = require('amazon-date-parser');
var date = new AmazonDateParser('2017-01-31');
/*
returns:
{
startDate: Tue Jan 31 2017 00:00:00 GMT+0000 (GMT),
endDate: Tue Jan 31 2017 23:59:59 GMT+0000 (GMT)
}
*/
It throws an error when the date is not valid or not supported.
var AmazonDateParser = require('amazon-date-parser');
try {
var date = new AmazonDateParser('dummy');
}catch(e) {
console.log(e.message);
}
// Error: Invalid constructor parameter or parameter not supported.
- right now:
PRESENT_REF
- single day:
2017-11-24
- week:
2017-W48
- weekend:
2017-W48-WE
- month:
2017-11
and2019-11-XX
- quarter:
2018-Q2
- seasons:
2017-SP
,2017-WI
,2017-FA
,2017-SU
(see below) - year:
2018
and2020-XX
- decade:
201X
The constructor receives the following optional parameters only valid for season's calculations.
{
hemisphere: 'N', //`N` for North, `S` for the South hemisphere (default is `N`)
seasons: { // see Custom seasons for more info about this parameter
// ...
'SU': { // summer
startDate: [5, 1], // 1st of June
endDate: [8, 0] // 31st of August
}
// ...
}
}
The seasons
parameters overrides all the others. For instance, if you provide seasons
and hemisphere
the latter will be ignored.
The north hemisphere seasons are by default defined as follow:
- Spring, from the 1st of March to the 31st of May
- Summer, from the 1st of June to the 31st of August
- Fall/Autumn, from the 1st of September to the 30th of November
- Winter, from the 1st of December to the end of February (28th or 29th depending on leap year)
For the south hemisphere you should construct the Amazon date parser as follow:
var date = new AmazonDateParser({hemisphere: 'S'});
and you can get:
- Spring, from the 1st of September to the 30th of November
- Summer, from the 1st of December to the end of February (28th or 29th depending on leap year)
- Fall/Autumn, from the 1st of March to the 31st of May
- Winter, from the 1st of June to the 31st of August
You can pass your own seasons representation using the following configurations:
var options = {
seasons: {
'SP': {
startDate: [2, 1], // 1st of March
endDate: [3, 0] // end of March
},
'SU': {
startDate: [5, 1], // 1st of June
endDate: [8, 0] // end of August
},
'FA': {
startDate: [8, 1], // 1st of September
endDate: [11, 0] // end of November
},
'WI': {
startDate: [11, 1], // 1st of December
endDate: [2, 0] // end of February (28th or 29th)
}
}
var AmazonDateParser = require('amazon-date-parser');
var date = new AmazonDateParser('2018-SP', options);
/*
returns something like:
{
startDate: Thu Mar 01 2018 00:00:00 GMT+0000 (GMT),
endDate: Sat Mar 31 2018 23:59:59 GMT+0000 (GMT)
}
*/
The MIT License (MIT). Please see License File for more information.