1234567891011121314151617181920212223242526272829 |
- package utils
- import (
- "strconv"
- "strings"
- "time"
- )
- func ParseDuration(d string) (time.Duration, error) {
- d = strings.TrimSpace(d)
- dr, err := time.ParseDuration(d)
- if err == nil {
- return dr, nil
- }
- if strings.Contains(d, "d") {
- index := strings.Index(d, "d")
- hour, _ := strconv.Atoi(d[:index])
- dr = time.Hour * 24 * time.Duration(hour)
- ndr, err := time.ParseDuration(d[index+1:])
- if err != nil {
- return dr, nil
- }
- return dr + ndr, nil
- }
- dv, err := strconv.ParseInt(d, 10, 64)
- return time.Duration(dv), err
- }
|