in public/lib/date-service.js [162:210]
parseRangeFromString(input, locationKey) {
var now = this.localiseDateTime(this.now(), locationKey).clone();
if (!input) {
return {};
}
// Parses some natural language dates - doesn't use sugar as I'd like
// to remove it as a dependency one day as it modifies the global Date object
if (input == 'today') {
const migrationDate = moment.tz("2017-04-25 11:00", "Europe/London");
const fixedDate = moment.tz("2017-04-26 11:00", "Europe/London");
if (now > fixedDate) {
return this.createDayRange(now);
} else {
var dayStart = migrationDate;
return this.createRange(dayStart, dayStart.clone().add(1, 'days'));
}
} else if (input == 'tomorrow') {
return this.createDayRange(now.add(1, 'days'));
} else if (input == 'weekend') {
var weekendStart = now.day(6).startOf('day');
return this.createRange(weekendStart, weekendStart.clone().add(2, 'days'));
} else if (input == 'yesterday') {
return this.createDayRange(now.subtract(1, 'days'));
} else if (input === 'last24') {
return this.createRange(now.clone().subtract(24, 'hours'), now);
} else if (input === 'last48') {
return this.createRange(now.clone().subtract(48, 'hours'), now);
} else {
var parsed = this.localiseDateTime(input, locationKey);
if (!parsed.isValid()) {
throw new Error('Could not parse date: ' + input);
}
return this.createDayRange(parsed);
}
}