diff --git a/fs/parsetime.go b/fs/parsetime.go index 504232b20..4b492f2b5 100644 --- a/fs/parsetime.go +++ b/fs/parsetime.go @@ -41,18 +41,12 @@ func ParseTime(date string) (t time.Time, err error) { return t, nil } - // Attempt to parse as a time.Duration offset from now - d, err := time.ParseDuration(date) - if err == nil { - return now.Add(-d), nil + // Attempt to parse as a duration offset from now + d, err := ParseDuration(date) + if err != nil { + return t, err } - - d, err = parseDurationSuffixes(date) - if err == nil { - return now.Add(-d), nil - } - - return t, err + return now.Add(-d), nil } // Set a Time diff --git a/fs/parsetime_test.go b/fs/parsetime_test.go index 42ab5ac71..f4f2cb85d 100644 --- a/fs/parsetime_test.go +++ b/fs/parsetime_test.go @@ -50,6 +50,8 @@ func TestParseTime(t *testing.T) { {"-1x", time.Time{}, true}, {"off", time.Time{}, false}, {"1h2m3s", now.Add(-(time.Hour + 2*time.Minute + 3*time.Second)), false}, + {"1d12h", now.Add(-time.Hour * 36), false}, + {"1w2d", now.Add(-time.Hour * 24 * 9), false}, {"2001-02-03", time.Date(2001, 2, 3, 0, 0, 0, 0, time.Local), false}, {"2001-02-03 10:11:12", time.Date(2001, 2, 3, 10, 11, 12, 0, time.Local), false}, {"2001-08-03 10:11:12", time.Date(2001, 8, 3, 10, 11, 12, 0, time.Local), false},