关于golang:gocarbon-110版本发布了增加对gorm的支持

24次阅读

共计 1539 个字符,预计需要花费 4 分钟才能阅读完成。

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() 办法判断是否是第十二月

正文完
 0