go-carbon 1.1.0版本釋出了,php carbon時間處理庫的golang版,增加對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: "golang"
    Age: 18
    Birthday: "2012-09-09 00:00:00"
}
// json.Marshal(user)輸出
{
    "id": 1, 
    "name": "golang", 
    "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: "golang"
    Age: 18
    Birthday: "2012-09-09 00:00:00"
}
// json.Marshal(user)輸出
{
    "id": 1, 
    "name": "golang", 
    "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()方法判斷是否是第十二月
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章