go-carbon 1.1.0版本发布了,增加对gorm的支持

够过瘾 · · 531 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

carbon 是一个轻量级、语义化、对IDE友好的日期时间处理库,是PHP Carbon库的Golang实现版本,初衷是为了摆脱Golang反人类的2006-01-02 15:04:05格式化时间设计,支持链式调用和gorm结构体。
如果您觉得不错,请给个star吧
github:github.com/golang-module/carbon

gitee:gitee.com/go-package/carbon

在gorm中的应用

gorm.Open时必须包括parseTime=True参数

假设数据表为users,字段有id、name、age、birthday、created_at、updated_at、deleted_at
// 用法一,使用carbon.Model自动维护id、created_at、updated_at、deleted_at
type User struct {
    carbon.Model
    Name string `json:"name"`
    Age int `json:"age"`
    Birthday carbon.ToDateTimeString `json:"birthday"`
}
user := User {
    Name: "gouguoyin"
    Age: 18
    Birthday: "2012-09-09 00:00:00"
}
// json.Marshal(user)输出
{
    "id": 1, 
    "name": "gouguoyin", 
    "age": 18, 
    "birthday": "2012-09-09 00:00:00", 
    "created_at": "2020-09-09 12:13:14", 
    "updated_at": "2020-09-09 12:13:14", 
    "deleted_at": null
}

// 用法二,不使用carbon.Model
type User struct {
    Name string `json:"name"`
    Age int `json:"age"`
    Birthday carbon.ToDateString `json:"birthday"`
    CreatedAt carbon.ToDateTimeString `json:"created_at"`
    UpdatedAt carbon.ToTimeString `json:"updated_at"`
    DeletedAt carbon.ToTimestamp `json:"deleted_at"`
}
user := User {
    Name: "gouguoyin"
    Age: 18
    Birthday: "2012-09-09 00:00:00"
}
// json.Marshal(user)输出
{
    "id": 1, 
    "name": "gouguoyin", 
    "age": 18, 
    "birthday": "2012-09-09", 
    "created_at": "2020-09-09 12:13:14", 
    "updated_at": "12:13:14", 
    "deleted_at": 1599272433
}

更新日志

  • 修复readme.md错误描述
  • 完善单元测试
  • 新增对gorm结构体的时间格式化支持,支持输出多种标准时间格式
  • 新增IsJanuary()方法判断是否是第一月
  • 新增IsFebruary()方法判断是否是第二月
  • 新增IsMarch()方法判断是否是第三月
  • 新增IsApril()方法判断是否是第四月
  • 新增IsMay()方法判断是否是第五月
  • 新增IsJune()方法判断是否是第六月
  • 新增IsJuly()方法判断是否是第七月
  • 新增IsAugust()方法判断是否是第八月
  • 新增IsSeptember()方法判断是否是第九月
  • 新增IsOctober()方法判断是否是第十月
  • 新增IsNovember()方法判断是否是第十一月
  • 新增IsDecember()方法判断是否是第十二月

有疑问加站长微信联系(非本文作者)

本文来自:Segmentfault

感谢作者:够过瘾

查看原文:go-carbon 1.1.0版本发布了,增加对gorm的支持

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

531 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传