carbon 是一个轻量级、语义化、对开发者友好的Golang时间处理库,支持链式调用、农历和gorm、xorm等主流orm
如果您觉得不错,请给个star吧
github:[github.com/golang-module/carbon](https://github.com/golang-module/carbon "github.com/golang-module/carbon")
gitee:[gitee.com/go-package/carbon](https://gitee.com/go-package/carbon "gitee.com/go-package/carbon")
##### 更新日志
* 按照功能拆分文件,优化代码组织结构
* 新增SetDir()、SetResources()、SetLanguage()方法用于自定义i18n
* 新增StartOfSecond()、EndOfSecond()方法
* 新增日语翻译文件lang/jp.json
* 修复goland中部分文件typo警告
* 精简优化代码
###### 设置区域
```go
// 方式一(推荐)
c := carbon.Now().AddHours(1).SetLocale("jp")
if c.Error != nil {
// 错误处理 fmt.Println(c.Error)}
c.DiffForHumans() // 1 時間后
// 方式二
lang := NewLanguage()
if err := lang.SetLocale("jp");err != nil {
// 错误处理 fmt.Println(err)}
carbon.Now().AddHours(1).SetLanguage(lang).DiffForHumans() // 1 時間后
```
###### 设置目录
```go
lang := NewLanguage()
if err := lang.SetDir("lang");err != nil {
// 错误处理 fmt.Println(err)
}
carbon.Now().AddHours(1).SetLanguage(lang).DiffForHumans() // 1 小时后
```
###### 部分自定义翻译(其余仍然按照指定的locale翻译)
```go
lang := NewLanguage()
if err := lang.SetLocale("en");err != nil {
// 错误处理 fmt.Println(err)
}
resources := map[string]string{
"hour":"%dh",}
lang.SetResources(resources)
carbon.Now().AddYears(1).SetLanguage(lang).DiffForHumans() // 1 year from now
carbon.Now().AddHours(1).SetLanguage(lang).DiffForHumans() // 1h from now
```
###### 完全自定义翻译
```go
lang := NewLanguage()
resources := map[string]string{
"year":"1 yr|%d yrs",
"month":"1 mo|%d mos",
"week":"%dw",
"day":"%dd",
"hour":"%dh",
"minute":"%dm",
"second":"%ds",
"now": "just now",
"ago":"%s ago",
"from_now":"in %s",
"before":"%s before",
"after":"%s after",
}
lang.SetResources(resources)
carbon.Now().AddYears(1).SetLanguage(lang).DiffForHumans() // in 1 yr
carbon.Now().AddHours(1).SetLanguage(lang).DiffForHumans() // in 1h
```
有疑问加站长微信联系(非本文作者)