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

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: "勾国印"
    Age: 18
    Birthday: "2012-09-09 00:00:00"
}
// json.Marshal(user)输出
{
    "id": 1, 
    "name": "勾国印", 
    "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: "勾国印"
    Age: 18
    Birthday: "2012-09-09 00:00:00"
}
// json.Marshal(user)输出
{
    "id": 1, 
    "name": "勾国印", 
    "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 () 方法判断是否是第十二月

猜你喜欢

转载自www.oschina.net/news/118506/go-carbon-1-1-0-released