improve string conversion for gtime.Time

This commit is contained in:
John
2020-02-16 22:39:12 +08:00
parent 7443246e05
commit 20b64507b1
4 changed files with 30 additions and 12 deletions

View File

@ -2,18 +2,25 @@ package main
import (
"fmt"
"github.com/gogf/gf/frame/g"
"github.com/gogf/gf/os/gtime"
"github.com/gogf/gf/util/gconv"
)
func main() {
type T struct {
UpdateTime gtime.Time
}
t := new(T)
gconv.Struct(g.Map{
"UpdateTime": gtime.Now(),
}, t)
fmt.Println(t.UpdateTime)
// select * from table1 where field1='1111'
// and (
// (field2='2' and field3='3')
// or
// (field2='21' and field3='31')
// or
// (field2='22' and field3='32')
// )
//g.DB().Table("table1").
// Where("field1", "1111").
// And(g.Map{"field2": 2, "field3": 3})
//fmt.Println(gconv.GTime("2020-01-01 12:01:00").String())
//t := gconv.Convert("2020-01-01 12:01:00", "gtime.Time").(gtime.Time)
t := gconv.Convert(1989, "gtime.Time").(gtime.Time)
fmt.Println(t.String())
fmt.Println(gconv.String(t))
}

View File

@ -38,11 +38,12 @@ func (m *Middleware) Next() {
m.handlerIndex++
continue
}
// Router values switching.
m.request.routerMap = item.values
// Current router switching.
m.request.Router = item.handler.router
// Router values switching.
m.request.routerMap = item.values
gutil.TryCatch(func() {
// Execute bound middleware array of the item if it's not empty.
if m.handlerMDIndex < len(item.handler.middleware) {

View File

@ -201,11 +201,21 @@ func String(i interface{}) string {
return value
case []byte:
return string(value)
case time.Time:
if value.IsZero() {
return ""
}
return value.String()
case *time.Time:
if value == nil {
return ""
}
return value.String()
case gtime.Time:
if value.IsZero() {
return ""
}
return value.String()
case *gtime.Time:
if value == nil {
return ""

View File

@ -637,7 +637,7 @@ func Test_Convert_All(t *testing.T) {
gtest.AssertEQ(gconv.Convert("1989-01-02", "Time", "Y-m-d"), gconv.Time("1989-01-02", "Y-m-d"))
gtest.AssertEQ(gconv.Convert(1989, "Time"), gconv.Time("1970-01-01 08:33:09 +0800 CST"))
gtest.AssertEQ(gconv.Convert(gtime.Now(), "gtime.Time", 1), nil)
gtest.AssertEQ(gconv.Convert(1989, "gtime.Time"), gtime.Time{gconv.Time("1970-01-01 08:33:09 +0800 CST")})
gtest.AssertEQ(gconv.Convert(1989, "gtime.Time"), *gconv.GTime("1970-01-01 08:33:09 +0800 CST"))
gtest.AssertEQ(gconv.Convert(gtime.Now(), "*gtime.Time", 1), nil)
gtest.AssertEQ(gconv.Convert(gtime.Now(), "GTime", 1), nil)
gtest.AssertEQ(gconv.Convert(1989, "*gtime.Time"), gconv.GTime(1989))