美文网首页
beego orm 时间格式问题

beego orm 时间格式问题

作者: Mr_dreamer | 来源:发表于2020-02-18 21:51 被阅读0次

beego 的orm 结构体中时间如果用的是 time.Time 类似于下面这样

Create_time time.Time `orm:"auto_now_add;type(datetime)" form:"-"`
Update_time time.Time `orm:"auto_now;type(datetime)"`

那么在前端渲染时拿到的数据就会是类似2014-07-07T23:58:28+08:00 这种,显然不是通常的显示形式。如果想要拿到2014-07-07 23:58:28这样的形式该怎么办呢?
经过一同搜索之后,仍然没发现什么好办法能直接拿到想要的格式,我说一下大家说的最多的两种方案。
一种是修改/usr/local/go/src/time/time.go源码(复制别人的代码 没有测试)


// MarshalJSON implements the json.Marshaler interface.
// The time is a quoted string in RFC 3339 format, with sub-second precision added if present.
func (t Time) MarshalJSON2() ([]byte, error) {
if y := t.Year(); y < 0 || y >= 10000 {
// RFC 3339 is clear that years are 4 digits exactly.
// See golang.org/issue/4556#c15 for more discussion.
return nil, errors.New("Time.MarshalJSON: year outside of range [0,9999]")
}

b := make([]byte, 0, len(RFC3339Nano)+2)
b = append(b, '"')
b = t.AppendFormat(b, RFC3339Nano)
b = append(b, '"')
return b, nil
}
func (t Time) MarshalJSON() ([]byte, error) {
if y := t.Year(); y < 0 || y >= 10000 {
// RFC 3339 is clear that years are 4 digits exactly.
// See golang.org/issue/4556#c15 for more discussion.
return nil, errors.New("Time.MarshalJSON: year outside of range [0,9999]")
}

b := make([]byte, 0, len("2006-01-02 15:04:05")+2)
b = append(b, '"')
b = t.AppendFormat(b, "2006-01-02 15:04:05")
b = append(b, '"')
return b, nil
}

第二种和第一种其实差不多 只不过是在你的结构体中实现 MarshalJSONUnmarshalJson 或者自定义一种类型重写time

但是这两种我都不太喜欢,所以我直接在模板中进行格式化

{{.Create_time.Format "2006-01-02 15:04:05"}}

参考文章:
https://github.com/astaxie/beego/issues/686
https://studygolang.com/articles/11685
https://blog.csdn.net/wo541075754/article/details/79513484
https://www.jianshu.com/p/5250ef0954b7

相关文章

  • beego orm 时间格式问题

    beego 的orm 结构体中时间如果用的是 time.Time 类似于下面这样 那么在前端渲染时拿到的数据就会是...

  • beego 时间类型json格式问题

    beego 时间类型json格式化问题再使用beego的orm框架时,如果希望重新定义time.Time转json...

  • beego orm 时间相差八小时

    问题 使用beego的orm时,mysql数据库为datetime格式的字段插入之后,数据库看到的时间会比正常时间...

  • Beego Models 之 一

    模型(Models)- beego ORM 原文 beego ORM 是一个强大的 Go 语言 ORM 框架。她的...

  • 使用orm自动创建表结构

    关于 Beego 框架,这里不再赘述。Beego官方网站 一、什么是orm,为什么要用orm? orm (Obje...

  • Beego orm

    批量删除 Example 流程 根据对应表, 构建QuerySeter对象 添加查询条件 在最后的结构集上调用De...

  • beego ORM

    1.创建表 2.插入数据 3.查询数据 4.更新数据 把数据库init放到models里面

  • beego orm

    ORM官方文档为:https://github.com/beego/beedoc/blob/master/zh-C...

  • beego orm自动建表时字段default值不设置的解决办法

    beego orm自动建表时字段default值不设置的解决办法 在使用beego的orm建表时,我的模型是这样建...

  • 3.2 Beego ORM框架

    3.2 ORM框架 Beego中内嵌了ORM框架,用来操作数据库。那么ORM框架是什么呢?ORM框架是Object...

网友评论

      本文标题:beego orm 时间格式问题

      本文链接:https://www.haomeiwen.com/subject/fwinfhtx.html