71 lines
1.4 KiB
Go
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")
|
|
}
|