Skip to content
Snippets Groups Projects
Commit db748dc6 authored by Francé Wilke's avatar Francé Wilke
Browse files

Merge branch '47-absolute-start-and-end-date-string' into 'main'

Resolve "Absolute start and end date string"

See merge request !64
parents 93530d8d 40f3cebb
Branches
Tags v1.298.0
1 merge request!64Resolve "Absolute start and end date string"
......@@ -134,6 +134,47 @@ func AbsoluteDateStringQuery(absolute string) (string, error) {
return "", errors.Error("invalid absolute date query")
}
func AbsoluteStartAndEndDateString(absolute string) (string, string, error) {
var value int64
timeNow := date_utils.CurrentDate()
if CheckAbsoluteRegex(LastXHours, absolute) {
value = PullAbsoluteValue(absolute)
since := timeNow.Add(time.Duration(-value) * time.Hour)
return date_utils.DateDBFormattedString(since), date_utils.DateDBFormattedString(timeNow), nil
}
if CheckAbsoluteRegex(LastDay, absolute) {
startDay := time.Date(timeNow.Year(), timeNow.Month(), timeNow.Day(), 0, 0, 0, 0, date_utils.CurrentLocation())
endDay := time.Date(timeNow.Year(), timeNow.Month(), timeNow.Day(), 23, 59, 59, 999999999, date_utils.CurrentLocation())
return date_utils.DateDBFormattedString(startDay), date_utils.DateDBFormattedString(endDay), nil
}
if CheckAbsoluteRegex(LastXDays, absolute) {
value = PullAbsoluteValue(absolute)
since := timeNow.AddDate(0, 0, -int(value))
return date_utils.DateDBFormattedString(since), date_utils.DateDBFormattedString(timeNow), nil
}
if CheckAbsoluteRegex(LastMonth, absolute) {
firstOfMonth := time.Date(timeNow.Year(), timeNow.Month(), 1, 0, 0, 0, 0, date_utils.CurrentLocation())
lastDay := firstOfMonth.AddDate(0, 1, -1)
lastOfMonth := time.Date(lastDay.Year(), lastDay.Month(), lastDay.Day(), 23, 59, 59, 999999999, date_utils.CurrentLocation())
return date_utils.DateDBFormattedString(firstOfMonth), date_utils.DateDBFormattedString(lastOfMonth), nil
}
if CheckAbsoluteRegex(Yesterday, absolute) {
yesterday := timeNow.AddDate(0, 0, -1)
startDay := time.Date(yesterday.Year(), yesterday.Month(), yesterday.Day(), 0, 0, 0, 0, date_utils.CurrentLocation())
endDay := time.Date(yesterday.Year(), yesterday.Month(), yesterday.Day(), 23, 59, 59, 999999999, date_utils.CurrentLocation())
return date_utils.DateDBFormattedString(startDay), date_utils.DateDBFormattedString(endDay), nil
}
// Not matched
return "", "", errors.Error("invalid absolute start and end date string")
}
func ParseAbsoluteQuery(absoluteQuery string, location *time.Location) (startDate, endDate time.Time, err error) {
nowValue := time.Now().UTC()
var value int64
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment