123456789101112131415161718192021222324252627282930313233 |
- package models
- import (
- "database/sql/driver"
- "fmt"
- "time"
- )
- type JsonTime struct {
- time.Time
- }
- func (t JsonTime) MarshalJSON() ([]byte, error) {
- str := fmt.Sprintf("\"%s\"", t.Format("2006-01-02 15:04:05"))
- return []byte(str), nil
- }
- func (t JsonTime) Value() (driver.Value, error) {
- var zeroTime time.Time
- if t.Time.UnixNano() == zeroTime.UnixNano() {
- return nil, nil
- }
- return t.Time, nil
- }
- func (t *JsonTime) Scan(v interface{}) error {
- value, ok := v.(time.Time)
- if ok {
- *t = JsonTime{Time: value}
- return nil
- }
- return fmt.Errorf("error %v", v)
- }
|