mirror of
https://github.com/astaxie/beego.git
synced 2024-11-26 04:51:30 +00:00
Parse form time by its length
Fix #2451 Signed-off-by: Guohua Ouyang <guohuaouyang@gmail.com>
This commit is contained in:
parent
1d49a4bcbd
commit
49fffe3ebe
@ -26,6 +26,12 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
formatTime = "15:04:05"
|
||||||
|
formatDate = "2006-01-02"
|
||||||
|
formatDateTime = "2006-01-02 15:04:05"
|
||||||
|
)
|
||||||
|
|
||||||
// Substr returns the substr from start to length.
|
// Substr returns the substr from start to length.
|
||||||
func Substr(s string, start, length int) string {
|
func Substr(s string, start, length int) string {
|
||||||
bt := []rune(s)
|
bt := []rune(s)
|
||||||
@ -352,11 +358,25 @@ func parseFormToStruct(form url.Values, objT reflect.Type, objV reflect.Value) e
|
|||||||
case reflect.Struct:
|
case reflect.Struct:
|
||||||
switch fieldT.Type.String() {
|
switch fieldT.Type.String() {
|
||||||
case "time.Time":
|
case "time.Time":
|
||||||
format := time.RFC3339
|
var (
|
||||||
if len(tags) > 1 {
|
t time.Time
|
||||||
format = tags[1]
|
err error
|
||||||
|
)
|
||||||
|
if len(value) >= 19 {
|
||||||
|
value = value[:19]
|
||||||
|
t, err = time.ParseInLocation(formatDateTime, value, time.Local)
|
||||||
|
} else if len(value) >= 10 {
|
||||||
|
if len(value) > 10 {
|
||||||
|
value = value[:10]
|
||||||
}
|
}
|
||||||
t, err := time.ParseInLocation(format, value, time.Local)
|
t, err = time.ParseInLocation(formatDate, value, time.Local)
|
||||||
|
} else if len(value) >= 8 {
|
||||||
|
if len(value) > 8 {
|
||||||
|
value = value[:8]
|
||||||
|
}
|
||||||
|
t, err = time.ParseInLocation(formatTime, value, time.Local)
|
||||||
|
}
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user