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

2020年09月10日

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

展开阅读全文
5 收藏
分享
加载中
精彩评论
"2006-01-02 15:04:05" 是个非常好的设计
2020-09-10 12:59
5
举报
mark
2020-09-10 14:15
1
举报
更新很快啊!加油💪
2020-09-10 11:50
1
举报
欢迎大家使用,提出宝贵意见
2020-09-10 11:11
1
举报
👍
2020-09-10 10:46
1
举报
最新评论 (16)
来个最近N天函数
2020-09-10 14:15
0
回复
举报
最近N天不就是N天前么?
2020-09-10 14:34
0
回复
举报
返回日期数组,列如返回最近七天的日期数组
2020-09-10 14:40
0
回复
举报
mark
2020-09-10 14:15
1
回复
举报
"2006-01-02 15:04:05" 是个非常好的设计
2020-09-10 12:59
5
回复
举报
愿闻其详
2020-09-10 13:02
0
回复
举报
对呀。mysql默认数据格式。
2020-09-10 16:13
0
回复
举报
问题是是用这个字符串去格式化时间,常规都是用的Y-m-d H:i:s之类的
2020-09-10 16:27
0
回复
举报
其实go开发组很多东西都是故意和其他语言不同,不知道为啥。这个时间确实过于标新立异了。别的语言也用自己觉得有纪念意义的日期字符串搞就完蛋了。
2020-09-10 16:33
0
回复
举报
再增加个当前时间的昨天和第n天呗
2020-09-10 12:31
0
回复
举报
用SubDay(n)方法即可实现
2020-09-10 12:39
0
回复
举报
如carbon. New(). Parse(“2020-09-09”).SubDay(1),输出2020-09-08 00:00:00
2020-09-10 13:02
0
回复
举报
更新很快啊!加油💪
2020-09-10 11:50
1
回复
举报
感谢支持
2020-09-10 12:24
0
回复
举报
欢迎大家使用,提出宝贵意见
2020-09-10 11:11
1
回复
举报
👍
2020-09-10 10:46
1
回复
举报
更多评论
16 评论
5 收藏
分享
返回顶部
顶部