binding: support unix time (#1980)
* binding: support unix time
ref:#1979
* binding: support unix time
add test file
modify readme
```golang
package main
import (
        "fmt"
        "github.com/gin-gonic/gin"
        "time"
)
type shareTime struct {
        CreateTime time.Time `form:"createTime" time_format:"unixNano"`
        UnixTime   time.Time `form:"unixTime" time_format:"unix"`
}
func main() {
        r := gin.Default()
        unix := r.Group("/unix")
        testCT := time.Date(2019, 7, 6, 16, 0, 33, 123, time.Local)
        fmt.Printf("%d\n", testCT.UnixNano())
        testUT := time.Date(2019, 7, 6, 16, 0, 33, 0, time.Local)
        fmt.Printf("%d\n", testUT.Unix())
        unix.GET("/nano", func(c *gin.Context) {
                s := shareTime{}
                c.ShouldBindQuery(&s)
                if !testCT.Equal(s.CreateTime) {
                        c.String(500, "want %d got %d", testCT.UnixNano(), s.CreateTime)
                        return
                }
                c.JSON(200, s)
        })
        unix.GET("/sec", func(c *gin.Context) {
                s := shareTime{}
                c.ShouldBindQuery(&s)
                if !testUT.Equal(s.UnixTime) {
                        c.String(500, "want %d got %d", testCT.Unix(), s.UnixTime)
                        return
                }
                c.JSON(200, s)
        })
        r.Run()
}
```
* Contraction variable scope
			
			
This commit is contained in:
		
							
								
								
									
										22
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								README.md
									
									
									
									
									
								
							@ -846,9 +846,11 @@ import (
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type Person struct {
 | 
			
		||||
	Name     string    `form:"name"`
 | 
			
		||||
	Address  string    `form:"address"`
 | 
			
		||||
	Birthday time.Time `form:"birthday" time_format:"2006-01-02" time_utc:"1"`
 | 
			
		||||
        Name       string    `form:"name"`
 | 
			
		||||
        Address    string    `form:"address"`
 | 
			
		||||
        Birthday   time.Time `form:"birthday" time_format:"2006-01-02" time_utc:"1"`
 | 
			
		||||
        CreateTime time.Time `form:"createTime" time_format:"unixNano"`
 | 
			
		||||
        UnixTime   time.Time `form:"unixTime" time_format:"unix"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
@ -862,11 +864,13 @@ func startPage(c *gin.Context) {
 | 
			
		||||
	// If `GET`, only `Form` binding engine (`query`) used.
 | 
			
		||||
	// If `POST`, first checks the `content-type` for `JSON` or `XML`, then uses `Form` (`form-data`).
 | 
			
		||||
	// See more at https://github.com/gin-gonic/gin/blob/master/binding/binding.go#L48
 | 
			
		||||
	if c.ShouldBind(&person) == nil {
 | 
			
		||||
		log.Println(person.Name)
 | 
			
		||||
		log.Println(person.Address)
 | 
			
		||||
		log.Println(person.Birthday)
 | 
			
		||||
	}
 | 
			
		||||
        if c.ShouldBind(&person) == nil {
 | 
			
		||||
                log.Println(person.Name)
 | 
			
		||||
                log.Println(person.Address)
 | 
			
		||||
                log.Println(person.Birthday)
 | 
			
		||||
                log.Println(person.CreateTime)
 | 
			
		||||
                log.Println(person.UnixTime)
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
	c.String(200, "Success")
 | 
			
		||||
}
 | 
			
		||||
@ -874,7 +878,7 @@ func startPage(c *gin.Context) {
 | 
			
		||||
 | 
			
		||||
Test it with:
 | 
			
		||||
```sh
 | 
			
		||||
$ curl -X GET "localhost:8085/testing?name=appleboy&address=xyz&birthday=1992-03-15"
 | 
			
		||||
$ curl -X GET "localhost:8085/testing?name=appleboy&address=xyz&birthday=1992-03-15&createTime=1562400033000000123&unixTime=1562400033"
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Bind Uri
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user