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()方法判断是否是第十二月
有疑问加站长微信联系(非本文作者)