go-time-parse will parse time expressions into time.Duration quantities. From the example:
actualDuration, phraseType, err := ParseDuration("24 days from now")
log.PanicIf(err)
fmt.Printf("%d [%s]\n", actualDuration/time.Hour/24, phraseType)
actualDuration, phraseType, err = ParseDuration("now")
log.PanicIf(err)
fmt.Printf("%d [%s]\n", actualDuration, phraseType)
actualDuration, phraseType, err = ParseDuration("12m")
log.PanicIf(err)
fmt.Printf("%d [%s]\n", actualDuration/time.Minute, phraseType)
actualDuration, phraseType, err = ParseDuration("every 6 hours")
log.PanicIf(err)
fmt.Printf("%d [%s]\n", actualDuration/time.Hour, phraseType)
Output:
24 [time] 0 [time] 12 [interval] 6 [interval]