Files
woogo/utils.go

53 lines
1.3 KiB
Go
Raw Permalink Normal View History

2025-04-08 19:24:11 +02:00
package woogo
import (
"fmt"
"strings"
"time"
"git.cloudyne.io/go/woogo/constant"
"github.com/araddon/dateparse"
)
// ToISOTimeString Convert to iso time string
// If date format is invalid, then return original value
// If dateStr include time part, and you set addMinTimeString/addMaxTimeString to true,
// but still return original dateStr value.
func ToISOTimeString(dateStr string, addMinTimeString, addMaxTimeString bool) (s string) {
dateStr = strings.TrimSpace(dateStr)
if dateStr == "" {
return
}
s = dateStr
format, err := dateparse.ParseFormat(dateStr)
if err == nil && (format == constant.DateFormat || format == constant.DatetimeFormat || format == constant.WooDatetimeFormat) {
if strings.Index(dateStr, " ") == -1 {
if addMinTimeString {
dateStr += " 00:00:00"
}
if addMaxTimeString {
dateStr += " 23:59:59"
}
}
if t, err := dateparse.ParseAny(dateStr); err == nil {
return t.Format(time.RFC3339)
}
}
return s
}
// IsValidateTime Is validate time
func IsValidateTime(dateStr string) error {
format, err := dateparse.ParseFormat(dateStr)
if err != nil {
return err
}
switch format {
case constant.DateFormat, constant.DatetimeFormat, constant.WooDatetimeFormat:
return nil
default:
return fmt.Errorf("%s 日期格式无效", dateStr)
}
}