32bf0415/html_components/parsing.go
1970-01-01 00:00:00 +00:00

71 lines
1.4 KiB
Go

package html_components
import (
"fmt"
"strconv"
"time"
)
func ParseIntWithDefault(input string, defaultValue int) int {
value, err := strconv.Atoi(input)
if err != nil {
return defaultValue
}
return value
}
func ParseFloat32WithDefault(input string, defaultValue float32) float32 {
value, err := strconv.ParseFloat(input, 32)
if err != nil {
return defaultValue
}
return float32(value)
}
func ParseBoolWithDefault(input string, defaultValue bool) bool {
if input == "true" {
return true
}
return defaultValue
}
func ParseCheckboxWithDefault(input string, defaultValue bool) bool {
if input == "on" {
return true
}
return defaultValue
}
func ParseTime(timeString string, timezone string) time.Time {
if timezone == "" {
timezone = "Europe/Berlin"
}
location, err := time.LoadLocation(timezone)
if err != nil {
println(fmt.Sprintf("failed to load location %v, error: %v", timezone, err))
location = time.Local
}
timeObject, err := time.Parse("2006-01-02T15:04", timeString)
if err == nil {
timeObject, err = time.ParseInLocation("2006-01-02T15:04", timeString, location)
}
if err != nil {
timeObject = time.UnixMilli(0).UTC()
}
return timeObject
}
func TimeToString(time time.Time) string {
if time.UnixMilli() == 0 {
return ""
}
return time.Format("2006-01-02 15:04")
}
func TimeToValue(time time.Time) string {
if time.UnixMilli() == 0 {
return ""
}
return time.Format("2006-01-02T15:04")
}