我正在尝试向数据库添加时间戳,并返回带有表示时间戳的数字的 json,而不是时间戳的当前字符串表示形式;本质上是压倒一切的元帅time.Time
type JSONTime time.Time
func (j *JSONTime) UnmarshalJSON(data []byte) error {
if string(data) == "null" {
return nil
}
millis, err := strconv.ParseInt(string(data), 10, 64)
if err != nil {
return err
}
*j = JSONTime(time.Unix(0, millis*int64(time.Millisecond)))
return err
}
func (t JSONTime) MarshalJSON() ([]byte, error) {
//do your serializing here
stamp := fmt.Sprintf("%d", time.Time(t).Unix()*1000)
return []byte(stamp), nil
}
type table struct {
ID int64 `gorm:"primary_key;auto_increment"json:"id"`
CreatedAt JSONTime json:"createdAt"`
UpdatedAt JSONTime json:"updatedAt"`
}
我遇到的问题是上面的代码只是忽略了数据库中列的创建(创建了其他字段)。我什至手动创建了该列,但 gorm 也不添加数据。
我相信编组和解组工作,但问题在于使用它们之前(即将列添加到数据库)
我在这里做错了什么?
我正在使用MySQL和库gorm
斯蒂芬大帝
慕斯王
相关分类