注意:本文大部分内容摘抄自-https://github.com/dromara/carbon/blob/master/README.cn.md使用文档
一、简介
一个轻量级的、易于使用的、语义智能的日期时间处理库,支持链式调用,已被 awesome-go 收录,现已经捐赠给了 dromara 组织
二、安装
注意:需要go版本在1.17以上:go >= 1.17
1.GitHub地址
项目地址:github.com/dromara/carbon
官方使用文档:https://github.com/dromara/carbon/blob/master/README.cn.md
安装命令:go get -u github.com/dromara/carbon/v2
2.Gitee地址
项目地址:gitee.com/dromara/carbon
官方使用文档:https://gitee.com/dromara/carbon/blob/master/README.cn.md
安装命令:go get -u gitee.com/dromara/carbon/v2
3.GitCode地址
项目地址:gitcode.com/dromara/carbon
官方使用文档:https://gitcode.com/dromara/carbon/blob/master/README.cn.md
安装命令:go get -u gitcode.com/dromara/carbon/v2
三、使用
注意:由于捐赠给了 dromara 组织,目前仓库地址已经发生变动,如果之前用的路径是 golang-module/carbon需要修改为新路径,或执行如下命令:- go mod edit -replace github.com/golang-module/carbon/v2=github.com/dromara/carbon/v2
复制代码 1、简单使用
- package main
- import (
- "fmt"
- "github.com/dromara/carbon/v2"
- )
- func main() {
- now := carbon.Now()
- fmt.Println("当前时间:", now)
- }
- // 打印值 当前时间: 2025-02-19 11:09:14
复制代码 2、详细用法示例
假设当前时间为 2020-08-05 13:14:15.999999999 +0800 CST
1. 设置全局默认值
- carbon.SetDefault(carbon.Default{
- Layout: carbon.DateTimeLayout,
- Timezone: carbon.PRC,
- WeekStartsAt: carbon.Sunday,
- Locale: "zh-CN", // 取值范围:lang 目录下翻译文件名,不包含文件后缀
- })
复制代码建议在入口文件如 main.go 中设置
2. Carbon 和 time.Time 互转
- // 将标准 time.Time 转换成 Carbon
- carbon.CreateFromStdTime(time.Now())
- // 将 Carbon 转换成标准 time.Time
- carbon.Now().StdTime()
复制代码 3. 昨天、今天、来日诰日
- // 今天此刻
- fmt.Printf("%s", carbon.Now()) // 2020-08-05 13:14:15
- carbon.Now().String() // 2020-08-05 13:14:15
- carbon.Now().ToString() // 2020-08-05 13:14:15 +0800 CST
- carbon.Now().ToDateTimeString() // 2020-08-05 13:14:15
- // 今天日期
- carbon.Now().ToDateString() // 2020-08-05
- // 今天时间
- carbon.Now().ToTimeString() // 13:14:15
- // 指定时区的今天此刻
- carbon.Now(Carbon.NewYork).ToDateTimeString() // 2020-08-05 14:14:15
- // 今天秒级时间戳
- carbon.Now().Timestamp() // 1596604455
- // 今天毫秒级时间戳
- carbon.Now().TimestampMilli() // 1596604455999
- // 今天微秒级时间戳
- carbon.Now().TimestampMicro() // 1596604455999999
- // 今天纳秒级时间戳
- carbon.Now().TimestampNano() // 1596604455999999999
- // 昨天此刻
- fmt.Printf("%s", carbon.Yesterday()) // 2020-08-04 13:14:15
- carbon.Yesterday().String() // 2020-08-04 13:14:15
- carbon.Yesterday().ToString() // 2020-08-04 13:14:15 +0800 CST
- carbon.Yesterday().ToDateTimeString() // 2020-08-04 13:14:15
- // 昨天日期
- carbon.Yesterday().ToDateString() // 2020-08-04
- // 昨天时间
- carbon.Yesterday().ToTimeString() // 13:14:15
- // 指定日期的昨天此刻
- carbon.Parse("2021-01-28 13:14:15").Yesterday().ToDateTimeString() // 2021-01-27 13:14:15
- // 指定时区的昨天此刻
- carbon.Yesterday(Carbon.NewYork).ToDateTimeString() // 2020-08-04 14:14:15
- // 昨天秒级时间戳
- carbon.Yesterday().Timestamp() // 1596518055
- // 昨天毫秒级时间戳
- carbon.Yesterday().TimestampMilli() // 1596518055999
- // 昨天微秒级时间戳
- carbon.Yesterday().TimestampMicro() // 1596518055999999
- // 昨天纳秒级时间戳
- carbon.Yesterday().TimestampNano() // 1596518055999999999
- // 明天此刻
- fmt.Printf("%s", carbon.Tomorrow()) // 2020-08-06 13:14:15
- carbon.Tomorrow().String() // 2020-08-06 13:14:15
- carbon.Tomorrow().ToString() // 2020-08-06 13:14:15 +0800 CST
- carbon.Tomorrow().ToDateTimeString() // 2020-08-06 13:14:15
- // 明天日期
- carbon.Tomorrow().ToDateString() // 2020-08-06
- // 明天时间
- carbon.Tomorrow().ToTimeString() // 13:14:15
- // 指定日期的明天此刻
- carbon.Parse("2021-01-28 13:14:15").Tomorrow().ToDateTimeString() // 2021-01-29 13:14:15
- // 指定时区的明天此刻
- carbon.Tomorrow(Carbon.NewYork).ToDateTimeString() // 2020-08-06 14:14:15
- // 明天秒级时间戳
- carbon.Tomorrow().Timestamp() // 1596690855
- // 明天毫秒级时间戳
- carbon.Tomorrow().TimestampMilli() // 1596690855999
- // 明天微秒级时间戳
- carbon.Tomorrow().TimestampMicro() // 1596690855999999
- // 明天纳秒级时间戳
- carbon.Tomorrow().TimestampNano() // 1596690855999999999
复制代码 4. 创建 Carbon 实例
- // 从秒级时间戳创建 Carbon 实例
- carbon.CreateFromTimestamp(-1).ToString() // 1970-01-01 07:59:59 +0800 CST
- carbon.CreateFromTimestamp(0).ToString() // 1970-01-01 08:00:00 +0800 CST
- carbon.CreateFromTimestamp(1).ToString() // 1970-01-01 08:00:01 +0800 CST
- carbon.CreateFromTimestamp(1649735755).ToString() // 2022-04-12 11:55:55 +0800 CST
- // 从毫秒级时间戳创建 Carbon 实例
- carbon.CreateFromTimestampMilli(1649735755981).ToString() // 2022-04-12 11:55:55.981 +0800 CST
- // 从微秒级时间戳创建 Carbon 实例
- carbon.CreateFromTimestampMicro(1649735755981566).ToString() // 2022-04-12 11:55:55.981566 +0800 CST
- // 从纳秒级时间戳创建 Carbon 实例
- carbon.CreateFromTimestampNano(1649735755981566000).ToString() // 2022-04-12 11:55:55.981566 +0800 CST
- // 从年月日时分秒创建 Carbon 实例
- carbon.CreateFromDateTime(2020, 8, 5, 13, 14, 15).ToString() // 2020-08-05 13:14:15 +0800 CST
- // 从年月日时分秒创建 Carbon 实例,包含毫秒
- carbon.CreateFromDateTimeMilli(2020, 8, 5, 13, 14, 15, 999).ToString() // 2020-08-05 13:14:15.999 +0800 CST
- // 从年月日时分秒创建 Carbon 实例,包含微秒
- carbon.CreateFromDateTimeMicro(2020, 8, 5, 13, 14, 15, 999999).ToString() // 2020-08-05 13:14:15.999999 +0800 CST
- // 从年月日时分秒创建 Carbon 实例,包含纳秒
- carbon.CreateFromDateTimeNano(2020, 8, 5, 13, 14, 15, 999999999).ToString() // 2020-08-05 13:14:15.999999999 +0800 CST
- // 从年月日创建 Carbon 实例
- carbon.CreateFromDate(2020, 8, 5).ToString() // 2020-08-05 00:00:00 +0800 CST
- // 从年月日创建 Carbon 实例,包含毫秒
- carbon.CreateFromDateMilli(2020, 8, 5, 999).ToString() // 2020-08-05 00:00:00.999 +0800 CST
- // 从年月日创建 Carbon 实例,包含微秒
- carbon.CreateFromDateMicro(2020, 8, 5, 999999).ToString() // 2020-08-05 00:00:00.999999 +0800 CST
- // 从年月日创建 Carbon 实例,包含纳秒
- carbon.CreateFromDateNano(2020, 8, 5, 999999999).ToString() // 2020-08-05 00:00:00.999999999 +0800 CST
- // 从时分秒创建 Carbon 实例(年月日默认为当前年月日)
- carbon.CreateFromTime(13, 14, 15).ToString() // 2020-08-05 13:14:15 +0800 CST
- // 从时分秒创建 Carbon 实例(年月日默认为当前年月日),包含毫秒
- carbon.CreateFromTimeMilli(13, 14, 15, 999).ToString() // 2020-08-05 13:14:15.999 +0800 CST
- // 从时分秒创建 Carbon 实例(年月日默认为当前年月日),包含微秒
- carbon.CreateFromTimeMicro(13, 14, 15, 999999).ToString() // 2020-08-05 13:14:15.999999 +0800 CST
- // 从时分秒创建 Carbon 实例(年月日默认为当前年月日),包含纳秒
- carbon.CreateFromTimeNano(13, 14, 15, 999999999).ToString() // 2020-08-05 13:14:15.999999999 +0800 CST
复制代码 5. 将 时间字符串 剖析成 Carbon 实例
- carbon.Parse("").ToDateTimeString() // 空字符串
- carbon.Parse("0").ToDateTimeString() // 空字符串
- carbon.Parse("00:00:00").ToDateTimeString() // 空字符串
- carbon.Parse("0000-00-00").ToDateTimeString() // 空字符串
- carbon.Parse("0000-00-00 00:00:00").ToDateTimeString() // 空字符串
- carbon.Parse("now").ToString() // 2020-08-05 13:14:15 +0800 CST
- carbon.Parse("yesterday").ToString() // 2020-08-04 13:14:15 +0800 CST
- carbon.Parse("tomorrow").ToString() // 2020-08-06 13:14:15 +0800 CST
- carbon.Parse("2020").ToString() // 2020-01-01 00:00:00 +0800 CST
- carbon.Parse("2020-8").ToString() // 2020-08-01 00:00:00 +0800 CST
- carbon.Parse("2020-08").ToString() // 2020-08-01 00:00:00 +0800 CST
- carbon.Parse("2020-8-5").ToString() // 2020-08-05 00:00:00 +0800 CST
- carbon.Parse("2020-8-05").ToString() // 2020-08-05 00:00:00 +0800 CST
- carbon.Parse("2020-08-05").ToString() // 2020-08-05 00:00:00 +0800 CST
- carbon.Parse("2020-08-05.999").ToString() // 2020-08-05 00:00:00.999 +0800 CST
- carbon.Parse("2020-08-05.999999").ToString() // 2020-08-05 00:00:00.999999 +0800 CST
- carbon.Parse("2020-08-05.999999999").ToString() // 2020-08-05 00:00:00.999999999 +0800 CST
- carbon.Parse("2020-8-5 13:14:15").ToString() // 2020-08-05 13:14:15 +0800 CST
- carbon.Parse("2020-8-05 13:14:15").ToString() // 2020-08-05 13:14:15 +0800 CST
- carbon.Parse("2020-08-5 13:14:15").ToString() // 2020-08-05 13:14:15 +0800 CST
- carbon.Parse("2020-08-05 13:14:15").ToString() // 2020-08-05 13:14:15 +0800 CST
- carbon.Parse("2020-08-05 13:14:15.999").ToString() // 2020-08-05 13:14:15.999 +0800 CST
- carbon.Parse("2020-08-05 13:14:15.999999").ToString() // 2020-08-05 13:14:15.999999 +0800 CST
- carbon.Parse("2020-08-05 13:14:15.999999999").ToString() // 2020-08-05 13:14:15.999999999 +0800 CST
- carbon.Parse("2020-8-5T13:14:15+08:00").ToString() // 2020-08-05 13:14:15 +0800 CST
- carbon.Parse("2020-8-05T13:14:15+08:00").ToString() // 2020-08-05 13:14:15 +0800 CST
- carbon.Parse("2020-08-05T13:14:15+08:00").ToString() // 2020-08-05 13:14:15 +0800 CST
- carbon.Parse("2020-08-05T13:14:15.999+08:00").ToString() // 2020-08-05 13:14:15.999 +0800 CST
- carbon.Parse("2020-08-05T13:14:15.999999+08:00").ToString() // 2020-08-05 13:14:15.999999 +0800 CST
- carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToString() // 2020-08-05 13:14:15.999999999 +0800 CST
- carbon.Parse("20200805").ToString() // 2020-08-05 00:00:00 +0800 CST
- carbon.Parse("20200805131415").ToString() // 2020-08-05 13:14:15 +0800 CST
- carbon.Parse("20200805131415.999").ToString() // 2020-08-05 13:14:15.999 +0800 CST
- carbon.Parse("20200805131415.999999").ToString() // 2020-08-05 13:14:15.999999 +0800 CST
- carbon.Parse("20200805131415.999999999").ToString() // 2020-08-05 13:14:15.999999999 +0800 CST
- carbon.Parse("20200805131415.999+08:00").ToString() // 2020-08-05 13:14:15.999 +0800 CST
- carbon.Parse("20200805131415.999999+08:00").ToString() // 2020-08-05 13:14:15.999999 +0800 CST
- carbon.Parse("20200805131415.999999999+08:00").ToString() // 2020-08-05 13:14:15.999999999 +0800 CST
复制代码 6. 通过 格式模板 将时间字符串剖析成 Carbon 实例
如果使用的字母与格式模板冲突时,请使用转义符转义该字母
- carbon.ParseByFormat("2020|08|05 13|14|15", "Y|m|d H|i|s").ToDateTimeString() // 2020-08-05 13:14:15
- carbon.ParseByFormat("It is 2020-08-05 13:14:15", "\\I\\t \\i\\s Y-m-d H:i:s").ToDateTimeString() // 2020-08-05 13:14:15
- carbon.ParseByFormat("今天是 2020年08月05日13时14分15秒", "今天是 Y年m月d日H时i分s秒").ToDateTimeString() // 2020-08-05 13:14:15
- carbon.ParseByFormat("2020-08-05 13:14:15", "Y-m-d H:i:s", carbon.Tokyo).ToDateTimeString() // 2020-08-05 14:14:15
复制代码 7. 通过 结构模板 将时间字符串剖析成 Carbon 实例
- carbon.ParseByLayout("2020|08|05 13|14|15", "2006|01|02 15|04|05").ToDateTimeString() // 2020-08-05 13:14:15
- carbon.ParseByLayout("It is 2020-08-05 13:14:15", "It is 2006-01-02 15:04:05").ToDateTimeString() // 2020-08-05 13:14:15
- carbon.ParseByLayout("今天是 2020年08月05日13时14分15秒", "今天是 2006年01月02日15时04分05秒").ToDateTimeString() // 2020-08-05 13:14:15
- carbon.ParseByLayout("2020-08-05 13:14:15", "2006-01-02 15:04:05", carbon.Tokyo).ToDateTimeString() // 2020-08-05 14:14:15
复制代码 8. 时间边界
- // 本世纪开始时间
- carbon.Parse("2020-08-05 13:14:15").StartOfCentury().ToDateTimeString() // 2000-01-01 00:00:00
- // 本世纪结束时间
- carbon.Parse("2020-08-05 13:14:15").EndOfCentury().ToDateTimeString() // 2999-12-31 23:59:59
- // 本年代开始时间
- carbon.Parse("2020-08-05 13:14:15").StartOfDecade().ToDateTimeString() // 2020-01-01 00:00:00
- carbon.Parse("2021-08-05 13:14:15").StartOfDecade().ToDateTimeString() // 2020-01-01 00:00:00
- carbon.Parse("2029-08-05 13:14:15").StartOfDecade().ToDateTimeString() // 2020-01-01 00:00:00
- // 本年代结束时间
- carbon.Parse("2020-08-05 13:14:15").EndOfDecade().ToDateTimeString() // 2029-12-31 23:59:59
- carbon.Parse("2021-08-05 13:14:15").EndOfDecade().ToDateTimeString() // 2029-12-31 23:59:59
- carbon.Parse("2029-08-05 13:14:15").EndOfDecade().ToDateTimeString() // 2029-12-31 23:59:59
- // 本年开始时间
- carbon.Parse("2020-08-05 13:14:15").StartOfYear().ToDateTimeString() // 2020-01-01 00:00:00
- // 本年结束时间
- carbon.Parse("2020-08-05 13:14:15").EndOfYear().ToDateTimeString() // 2020-12-31 23:59:59
- // 本季度开始时间
- carbon.Parse("2020-08-05 13:14:15").StartOfQuarter().ToDateTimeString() // 2020-07-01 00:00:00
- // 本季度结束时间
- carbon.Parse("2020-08-05 13:14:15").EndOfQuarter().ToDateTimeString() // 2020-09-30 23:59:59
- // 本月开始时间
- carbon.Parse("2020-08-05 13:14:15").StartOfMonth().ToDateTimeString() // 2020-08-01 00:00:00
- // 本月结束时间
- carbon.Parse("2020-08-05 13:14:15").EndOfMonth().ToDateTimeString() // 2020-08-31 23:59:59
- // 本周开始时间
- carbon.Parse("2020-08-05 13:14:15").StartOfWeek().ToDateTimeString() // 2020-08-02 00:00:00
- carbon.Parse("2020-08-05 13:14:15").SetWeekStartsAt(carbon.Sunday).StartOfWeek().ToDateTimeString() // 2020-08-02 00:00:00
- carbon.Parse("2020-08-05 13:14:15").SetWeekStartsAt(carbon.Monday).StartOfWeek().ToDateTimeString() // 2020-08-03 00:00:00
- // 本周结束时间
- carbon.Parse("2020-08-05 13:14:15").EndOfWeek().ToDateTimeString() // 2020-08-08 23:59:59
- carbon.Parse("2020-08-05 13:14:15").SetWeekStartsAt(carbon.Sunday).EndOfWeek().ToDateTimeString() // 2020-08-08 23:59:59
- carbon.Parse("2020-08-05 13:14:15").SetWeekStartsAt(carbon.Monday).EndOfWeek().ToDateTimeString() // 2020-08-09 23:59:59
- // 本日开始时间
- carbon.Parse("2020-08-05 13:14:15").StartOfDay().ToDateTimeString() // 2020-08-05 00:00:00
- // 本日结束时间
- carbon.Parse("2020-08-05 13:14:15").EndOfDay().ToDateTimeString() // 2020-08-05 23:59:59
- // 本小时开始时间
- carbon.Parse("2020-08-05 13:14:15").StartOfHour().ToDateTimeString() // 2020-08-05 13:00:00
- // 本小时结束时间
- carbon.Parse("2020-08-05 13:14:15").EndOfHour().ToDateTimeString() // 2020-08-05 13:59:59
- // 本分钟开始时间
- carbon.Parse("2020-08-05 13:14:15").StartOfMinute().ToDateTimeString() // 2020-08-05 13:14:00
- // 本分钟结束时间
- carbon.Parse("2020-08-05 13:14:15").EndOfMinute().ToDateTimeString() // 2020-08-05 13:14:59
- // 本秒开始时间
- carbon.Parse("2020-08-05 13:14:15").StartOfSecond().ToString() // 2020-08-05 13:14:15 +0800 CST
- // 本秒结束时间
- carbon.Parse("2020-08-05 13:14:15").EndOfSecond().ToString() // 2020-08-05 13:14:15.999999999 +0800 CST
复制代码 9. 时间旅行
10. 时间差值
- // 相差多少年
- carbon.Parse("2021-08-05 13:14:15").DiffInYears(carbon.Parse("2020-08-05 13:14:15")) // -1
- // 相差多少年(绝对值)
- carbon.Parse("2021-08-05 13:14:15").DiffAbsInYears(carbon.Parse("2020-08-05 13:14:15")) // 1
- // 相差多少月
- carbon.Parse("2020-08-05 13:14:15").DiffInMonths(carbon.Parse("2020-07-05 13:14:15")) // -1
- // 相差多少月(绝对值)
- carbon.Parse("2020-08-05 13:14:15").DiffAbsInMonths(carbon.Parse("2020-07-05 13:14:15")) // 1
- // 相差多少周
- carbon.Parse("2020-08-05 13:14:15").DiffInWeeks(carbon.Parse("2020-07-28 13:14:15")) // -1
- // 相差多少周(绝对值)
- carbon.Parse("2020-08-05 13:14:15").DiffAbsInWeeks(carbon.Parse("2020-07-28 13:14:15")) // 1
- // 相差多少天
- carbon.Parse("2020-08-05 13:14:15").DiffInDays(carbon.Parse("2020-08-04 13:14:15")) // -1
- // 相差多少天(绝对值)
- carbon.Parse("2020-08-05 13:14:15").DiffAbsInDays(carbon.Parse("2020-08-04 13:14:15")) // 1
- // 相差多少小时
- carbon.Parse("2020-08-05 13:14:15").DiffInHours(carbon.Parse("2020-08-05 12:14:15")) // -1
- // 相差多少小时(绝对值)
- carbon.Parse("2020-08-05 13:14:15").DiffAbsInHours(carbon.Parse("2020-08-05 12:14:15")) // 1
- // 相差多少分
- carbon.Parse("2020-08-05 13:14:15").DiffInMinutes(carbon.Parse("2020-08-05 13:13:15")) // -1
- // 相差多少分(绝对值)
- carbon.Parse("2020-08-05 13:14:15").DiffAbsInMinutes(carbon.Parse("2020-08-05 13:13:15")) // 1
- // 相差多少秒
- carbon.Parse("2020-08-05 13:14:15").DiffInSeconds(carbon.Parse("2020-08-05 13:14:14")) // -1
- // 相差多少秒(绝对值)
- carbon.Parse("2020-08-05 13:14:15").DiffAbsInSeconds(carbon.Parse("2020-08-05 13:14:14")) // 1
- // 相差字符串
- carbon.Now().DiffInString() // just now
- carbon.Now().AddYearsNoOverflow(1).DiffInString() // -1 year
- carbon.Now().SubYearsNoOverflow(1).DiffInString() // 1 year
- // 相差字符串(绝对值)
- carbon.Now().DiffAbsInString(carbon.Now()) // just now
- carbon.Now().AddYearsNoOverflow(1).DiffAbsInString(carbon.Now()) // 1 year
- carbon.Now().SubYearsNoOverflow(1).DiffAbsInString(carbon.Now()) // 1 year
- // 相差时长
- now := carbon.Now()
- now.DiffInDuration(now).String() // 0s
- now.AddHour().DiffInDuration(now).String() // 1h0m0s
- now.SubHour().DiffInDuration(now).String() // -1h0m0s
- // 相差时长(绝对值)
- now.DiffAbsInDuration(now).String() // 0s
- now.AddHour().DiffAbsInDuration(now).String() // 1h0m0s
- now.SubHour().DiffAbsInDuration(now).String() // 1h0m0s
- // 对人类友好的可读格式时间差
- carbon.Parse("2020-08-05 13:14:15").DiffForHumans() // just now
- carbon.Parse("2019-08-05 13:14:15").DiffForHumans() // 1 year ago
- carbon.Parse("2018-08-05 13:14:15").DiffForHumans() // 2 years ago
- carbon.Parse("2021-08-05 13:14:15").DiffForHumans() // 1 year from now
- carbon.Parse("2022-08-05 13:14:15").DiffForHumans() // 2 years from now
- carbon.Parse("2020-08-05 13:14:15").DiffForHumans(carbon.Now()) // 1 year before
- carbon.Parse("2019-08-05 13:14:15").DiffForHumans(carbon.Now()) // 2 years before
- carbon.Parse("2018-08-05 13:14:15").DiffForHumans(carbon.Now()) // 1 year after
- carbon.Parse("2022-08-05 13:14:15").DiffForHumans(carbon.Now()) // 2 years after
复制代码 11. 时间极值
- c0 := carbon.Parse("2023-04-01")
- c1 := carbon.Parse("2023-03-28")
- c2 := carbon.Parse("2023-04-16")
- // 返回最近的 Carbon 实例
- c0.Closest(c1, c2) // c1
- // 返回最远的 Carbon 实例
- c0.Farthest(c1, c2) // c2
- yesterday := carbon.Yesterday()
- today := carbon.Now()
- tomorrow := carbon.Tomorrow()
- // 返回最大的 Carbon 实例
- carbon.Max(yesterday, today, tomorrow) // tomorrow
- // 返回最小的 Carbon 实例
- carbon.Min(yesterday, today, tomorrow) // yesterday
- // 返回 Carbon 的最大值
- carbon.MaxValue().ToString() // 9999-12-31 23:59:59.999999999 +0000 UTC
- // 返回 Carbon 的最小值
- carbon.MinValue().ToString() // -9998-01-01 00:00:00 +0000 UTC
复制代码 12. 时间判断
[code]// 是否是夏令时carbon.Parse("").IsDST() // falsecarbon.Parse("0").IsDST() // falsecarbon.Parse("0000-00-00 00:00:00").IsDST() // falsecarbon.Parse("0000-00-00").IsDST() // falsecarbon.Parse("00:00:00").IsDST() // falsecarbon.Parse("2023-01-01", "Australia/Brisbane").IsDST() // falsecarbon.Parse("2023-01-01", "Australia/Sydney").IsDST() // true// 是否是零值时间(0001-01-01 00:00:00 +0000 UTC)carbon.Parse("").IsZero() // truecarbon.Parse("0").IsZero() // truecarbon.Parse("0000-00-00 00:00:00").IsZero() // truecarbon.Parse("0000-00-00").IsZero() // truecarbon.Parse("00:00:00").IsZero() // truecarbon.Parse("2020-08-05 00:00:00").IsZero() // falsecarbon.Parse("2020-08-05").IsZero() // falsecarbon.Parse("2020-08-05").SetTimezone("xxx").IsZero() // false// 是否是有效时间carbon.Parse("").IsValid() // falsecarbon.Parse("0").IsValid() // falsecarbon.Parse("0000-00-00 00:00:00").IsValid() // falsecarbon.Parse("0000-00-00").IsValid() // falsecarbon.Parse("00:00:00").IsValid() // falsecarbon.Parse("2020-08-05 00:00:00").IsValid() // truecarbon.Parse("2020-08-05").IsValid() // truecarbon.Parse("2020-08-05").SetTimezone("xxx").IsValid() // false// 是否是无效时间carbon.Parse("").IsInvalid() // truecarbon.Parse("0").IsInvalid() // truecarbon.Parse("0000-00-00 00:00:00").IsInvalid() // truecarbon.Parse("0000-00-00").IsInvalid() // truecarbon.Parse("00:00:00").IsInvalid() // truecarbon.Parse("2020-08-05 00:00:00").IsInvalid() // falsecarbon.Parse("2020-08-05").IsInvalid() // falsecarbon.Parse("2020-08-05").SetTimezone("xxx").IsInvalid() // true// 是否是上午carbon.Parse("2020-08-05 00:00:00").IsAM() // truecarbon.Parse("2020-08-05 08:00:00").IsAM() // truecarbon.Parse("2020-08-05 12:00:00").IsAM() // falsecarbon.Parse("2020-08-05 13:00:00").IsAM() // false// 是否是下午carbon.Parse("2020-08-05 00:00:00").IsPM() // falsecarbon.Parse("2020-08-05 08:00:00").IsPM() // falsecarbon.Parse("2020-08-05 12:00:00").IsPM() // truecarbon.Parse("2020-08-05 13:00:00").IsPM() // true// 是否是当前时间carbon.Now().IsNow() // true// 是否是未来时间carbon.Tomorrow().IsFuture() // true// 是否是已往时间carbon.Yesterday().IsPast() // true// 是否是闰年carbon.Parse("2020-08-05 13:14:15").IsLeapYear() // true// 是否是长年carbon.Parse("2020-08-05 13:14:15").IsLongYear() // true// 是否是一月carbon.Parse("2020-08-05 13:14:15").IsJanuary() // false// 是否是二月carbon.Parse("2020-08-05 13:14:15").IsFebruary() // false// 是否是三月carbon.Parse("2020-08-05 13:14:15").IsMarch() // false// 是否是四月carbon.Parse("2020-08-05 13:14:15").IsApril() // false// 是否是五月carbon.Parse("2020-08-05 13:14:15").IsMay() // false// 是否是六月carbon.Parse("2020-08-05 13:14:15").IsJune() // false// 是否是七月carbon.Parse("2020-08-05 13:14:15").IsJuly() // false// 是否是八月carbon.Parse("2020-08-05 13:14:15").IsAugust() // false// 是否是九月carbon.Parse("2020-08-05 13:14:15").IsSeptember() // true// 是否是十月carbon.Parse("2020-08-05 13:14:15").IsOctober() // false// 是否是十一月carbon.Parse("2020-08-05 13:14:15").IsNovember() // false// 是否是十二月carbon.Parse("2020-08-05 13:14:15").IsDecember() // false// 是否是周一carbon.Parse("2020-08-05 13:14:15").IsMonday() // false// 是否是周二carbon.Parse("2020-08-05 13:14:15").IsTuesday() // true// 是否是周三carbon.Parse("2020-08-05 13:14:15").IsWednesday() // false// 是否是周四carbon.Parse("2020-08-05 13:14:15").IsThursday() // false// 是否是周五carbon.Parse("2020-08-05 13:14:15").IsFriday() // false// 是否是周六carbon.Parse("2020-08-05 13:14:15").IsSaturday() // false// 是否是周日carbon.Parse("2020-08-05 13:14:15").IsSunday() // false// 是否是工作日carbon.Parse("2020-08-05 13:14:15").IsWeekday() // false// 是否是周末carbon.Parse("2020-08-05 13:14:15").IsWeekend() // true// 是否是昨天carbon.Parse("2020-08-04 13:14:15").IsYesterday() // truecarbon.Parse("2020-08-04 00:00:00").IsYesterday() // truecarbon.Parse("2020-08-04").IsYesterday() // true// 是否是今天carbon.Parse("2020-08-05 13:14:15").IsToday() // truecarbon.Parse("2020-08-05 00:00:00").IsToday() // truecarbon.Parse("2020-08-05").IsToday() // true// 是否是来日诰日carbon.Parse("2020-08-06 13:14:15").IsTomorrow() // truecarbon.Parse("2020-08-06 00:00:00").IsTomorrow() // truecarbon.Parse("2020-08-06").IsTomorrow() // true// 是否是同一世纪carbon.Parse("2020-08-05 13:14:15").IsSameCentury(carbon.Parse("3020-08-05 13:14:15")) // falsecarbon.Parse("2020-08-05 13:14:15").IsSameCentury(carbon.Parse("2099-08-05 13:14:15")) // true// 是否是同一年代carbon.Parse("2020-08-05 13:14:15").IsSameDecade(carbon.Parse("2030-08-05 13:14:15")) // falsecarbon.Parse("2020-08-05 13:14:15").IsSameDecade(carbon.Parse("2120-08-05 13:14:15")) // true// 是否是同一年carbon.Parse("2020-08-05 00:00:00").IsSameYear(carbon.Parse("2021-08-05 13:14:15")) // falsecarbon.Parse("2020-01-01 00:00:00").IsSameYear(carbon.Parse("2020-12-31 13:14:15")) // true// 是否是同一季候carbon.Parse("2020-08-05 00:00:00").IsSameQuarter(carbon.Parse("2020-09-05 13:14:15")) // falsecarbon.Parse("2020-01-01 00:00:00").IsSameQuarter(carbon.Parse("2021-01-31 13:14:15")) // true// 是否是同一月carbon.Parse("2020-01-01 00:00:00").IsSameMonth(carbon.Parse("2021-01-31 13:14:15")) // falsecarbon.Parse("2020-01-01 00:00:00").IsSameMonth(carbon.Parse("2020-01-31 13:14:15")) // true// 是否是同一天carbon.Parse("2020-08-05 13:14:15").IsSameDay(carbon.Parse("2021-08-05 13:14:15")) // falsecarbon.Parse("2020-08-05 00:00:00").IsSameDay(carbon.Parse("2020-08-05 13:14:15")) // true// 是否是同一小时carbon.Parse("2020-08-05 13:14:15").IsSameHour(carbon.Parse("2021-08-05 13:14:15")) // falsecarbon.Parse("2020-08-05 13:00:00").IsSameHour(carbon.Parse("2020-08-05 13:14:15")) // true// 是否是同一分钟carbon.Parse("2020-08-05 13:14:15").IsSameMinute(carbon.Parse("2021-08-05 13:14:15")) // falsecarbon.Parse("2020-08-05 13:14:00").IsSameMinute(carbon.Parse("2020-08-05 13:14:15")) // true// 是否是同一秒carbon.Parse("2020-08-05 13:14:15").IsSameSecond(carbon.Parse("2021-08-05 13:14:15")) // falsecarbon.Parse("2020-08-05 13:14:15").IsSameSecond(carbon.Parse("2020-08-05 13:14:15")) // true// 是否大于carbon.Parse("2020-08-05 13:14:15").Gt(carbon.Parse("2020-08-04 13:14:15")) // truecarbon.Parse("2020-08-05 13:14:15").Gt(carbon.Parse("2020-08-05 13:14:15")) // falsecarbon.Parse("2020-08-05 13:14:15").Compare(">", carbon.Parse("2020-08-04 13:14:15")) // truecarbon.Parse("2020-08-05 13:14:15").Compare(">", carbon.Parse("2020-08-05 13:14:15")) // false// 是否小于carbon.Parse("2020-08-05 13:14:15").Lt(carbon.Parse("2020-08-06 13:14:15")) // truecarbon.Parse("2020-08-05 13:14:15").Lt(carbon.Parse("2020-08-05 13:14:15")) // falsecarbon.Parse("2020-08-05 13:14:15").Compare("=", carbon.Parse("2020-08-05 13:14:15")) // true// 是否小于等于carbon.Parse("2020-08-05 13:14:15").Lte(carbon.Parse("2020-08-06 13:14:15")) // truecarbon.Parse("2020-08-05 13:14:15").Lte(carbon.Parse("2020-08-05 13:14:15")) // truecarbon.Parse("2020-08-05 13:14:15").Compare(" |