时间结构体
type UseDateTime struct {
CreatedAt *time.Time `json:"-"`
CreatedAtStr string `json:"created_at" gorm:"-"`
UpdatedAt *time.Time `json:"-"`
UpdatedAtStr string `json:"updated_at" gorm:"-"`
}
结构体多添加两个字段 CreatedAtStr 和 UpdatedAtStr用 Tag 来控制不参与存储
使用 Gorm 自带的 Hook AfterFind
func (u *UseDateTime) AfterFind(tx *gorm.DB) (err error) {
if u.CreatedAt != nil {
u.CreatedAtStr = u.CreatedAt.Format("2006-01-02 15:04:05")
}
if u.UpdatedAt != nil {
u.UpdatedAtStr = u.UpdatedAt.Format("2006-01-02 15:04:05")
}
return
}
最终输出
{
"code": 200,
"data": [
{
"id": 1,
"username": "admin",
"created_at": "2019-10-29 00:28:05",
"updated_at": "2024-06-13 14:09:15"
}
]
}