carbon 是一個輕量級、語義化、對IDE友好的日期時間處理庫,是PHP Carbon庫的Golang實現版本
github:github.com/golang-module/carbon
gitee:gitee.com/go-package/carbon
安裝
go get gitee.com/go-package/carbon
用法
假設當前北京時間為2020-09-05 13:20:30
初始化
import (
"gitee.com/go-package/carbon")
// 初始化
carbon := carbon:New()
設定時區(不設定預設為Local,即伺服器所在時區)
// 設定中國時區
carbon.Timezone(carbon.PRC);
// 設定上海時區
carbon.Timezone(carbon.Shanghai);
// 設定重慶時區
carbon.Timezone(carbon.Chongqing);
// 設定香港時區
carbon.Timezone(carbon.HongKong);
// 設定澳門時區
carbon.Timezone(carbon.Macao);
// 設定臺灣時區
carbon.Timezone(carbon.Taipei);
// 設定日本時區
carbon.Timezone(carbon.Japan);
// 設定東京時區
carbon.Timezone(carbon.Tokyo);
// 設定紐約時區
carbon.Timezone(carbon.NewYork);
獲取當前時間
carbon.Now().Format("Y-m-d H:i:s") // 2020-09-05 13:20:30
carbon.Now().Format("y-m-d h:i:s") // 20-09-05 01:20:30
carbon.Now().Format("Y/m/d") // 2020/09/05 13:20:30
carbon.Now().ToDateTimeString() // 2020-09-05 13:20:30
carbon.Now().ToDateString() // 2020-09-05
carbon.Now().ToTimeString() // 13:20:30
// 獲取當前時間戳
carbon.Now().ToTimestamp() // 1599272433
獲取昨天、今天、明天時間
carbon.Yesterday() // 2020-09-04 00:00:00
carbon.Today() // 2020-09-05 00:00:00
carbon.Tomorrow() // 2020-09-06 00:00:00
建立時間
// 時間戳 轉成 標準時間字串
carbon.CreateFromTimestamp(1599272433).Format("Y-m-d H:i:s") // 2020-09-05 13:20:30
// 年月日時分秒 轉成 標準時間字串
carbon.CreateFromDateTime(2020, 09, 05, 13, 20, 30).Format("Y-m-d H:i:s") // 2020-09-05 13:20:30
// 年月日 轉成 標準時間字串
carbon.CreateFromDate(2020, 09, 05).Format("Y-m-d H:i:s") // 2020-09-05 00:00:00
// 時分秒 轉成 標準時間字串(年月日預設為當前年月日)
carbon.CreateFromTime(13, 20, 30).Format("Y-m-d H:i:s") // 2020-09-05 13:20:30
解析標準格式時間字串
carbon.Parse("2020-09-05 13:20:30").Format("Y/m/d H:i:s") // 20200905132030
carbon.Parse("2020-09-05 13:20:30").Format("Y/m/d") // 20200905
carbon.Parse("2020-09-05").Format("Y/m/d H:i:s") // 2020/09/05 00:00:00
carbon.Parse("2020-09-05").Format("Y/m/d") // 2020/09/05
carbon.Parse("2020-09-05 13:20:30").ToDateTimeString() // 2020-09-05 13:20:30
carbon.Parse("2020-09-05 13:20:30").ToDateString() // 2020-09-05
carbon.Parse("2020-09-05 13:20:30").ToTimeString() // 13:20:30
carbon.Parse("2020-09-05 13:20:30").ToTimestamp() // 1599272433
carbon.Parse("2020/09/05 13:20:30").Format("Y-m-d H:i:s") // 2020-09-05 13:20:30
carbon.Parse("2020/09/05 13:20:30").Format("Y-m-d") // 2020-09-05
carbon.Parse("2020/09/05").Format("Y-m-d H:i:s") // 2020-09-05 00:00:00
carbon.Parse("2020/09/05").Format("Y-m-d") // 2020-09-05
carbon.Parse("2020/09/05 13:20:30").ToDateTimeString() // 2020-09-05 13:20:30
carbon.Parse("2020/09/05 13:20:30").ToDateString() // 2020-09-05
carbon.Parse("2020/09/05 13:20:30").ToTimeString() // 10:20:30
carbon.Parse("2020/09/05 13:20:30").ToTimestamp() // 1599272433
carbon.Parse("20200905132030").Format("Y-m-d H:i:s") // 2020-09-05 13:20:30
carbon.Parse("20200905132030").Format("Y-m-d") // 2020-09-05
carbon.Parse("20200905").Format("Y-m-d H:i:s") // 2020-09-05 00:00:00
carbon.Parse("20200905").Format("Y-m-d") // 2020-09-05
carbon.Parse("20200905132030").ToDateTimeString() // 2020-09-05 13:20:30
carbon.Parse("20200905132030").ToDateString() // 2020-09-05
carbon.Parse("20200905132030").ToTimeString() // 13:20:30
carbon.Parse("20200905132030").ToTimestamp() // 1599272433
解析自定義格式時間字串
carbon.ParseByCustom("2020|09|05 13:20:30", "Y|m|d H:i:s").Format("Y-m-d H:i:s") // 2020-09-05 13:20:30
carbon.ParseByCustom("2020%09%05% 01%20%30", "Y年m月d日 h%i%s").Format("Y-m-d H:i:s") // 2020-09-05 13:20:30
carbon.ParseByCustom("2020年09月05日 13:20:30", "Y年m月d日 H:i:s").Format("Y-m-d H:i:s") // 2020-09-05 13:20:30
carbon.ParseByCustom("2020年09月05日 13時20分30秒", "Y年m月d日 H時i分s秒").ToDateTimeString() // 2020-09-05 13:20:30
carbon.ParseByCustom("2020年09月05日 13時20分30秒", "Y年m月d日 H時i分s秒").ToDateString() // 2020-09-05
carbon.ParseByCustom("2020年09月05日 13時20分30秒", "Y年m月d日 H時i分s秒").ToTimeString() // 13:20:30
carbon.ParseByCustom("2020年09月05日 13時20分30秒", "Y年m月d日 H時i分s秒").ToTimestamp() // 1599272433
增減日期
// 增加五年
carbon.Now().AddYears(5).ToDateTimeString() // 2025-09-05 13:20:30
// 增加一年
carbon.Now().AddYear().ToDateTimeString() // 2021-09-05 13:20:30
// 減少五年
carbon.Now().SubYears(5).ToDateTimeString() // 2015-09-05 13:20:30
// 減少一年
carbon.Now().SubYear().ToDateTimeString() // 2019-09-05 13:20:30
// 增加五月
carbon.Now().AddMonths(5).ToDateTimeString() // 2021-02-05 13:20:30
// 增加一月
carbon.Now().AddMonth().ToDateTimeString() // 2020-10-05 13:20:30
// 減少五月
carbon.Now().SubMonths(5).ToDateTimeString() // 2020-04-05 13:20:30
// 減少一月
carbon.Now().SubMonth().ToDateTimeString() // 2020-08-05 13:20:30
// 增加三日
carbon.Now().AddDays(3).ToDateTimeString() // 2020-09-08 13:20:30
// 增加一日
carbon.Now().AddDay().ToDateTimeString() // 2020-09-06 13:20:30
// 減少三日
carbon.Now().SubDays(3).ToDateTimeString() // 2020-09-02 13:20:30
// 減少一日
carbon.Now().SubDay().ToDateTimeString() // 2020-08-04 13:20:30
// 增加三小時
carbon.Now().AddHours(3).ToDateTimeString() // 2020-09-05 16:20:30
// 增加一小時
carbon.Now().AddHoury().ToDateTimeString() // 2020-09-05 14:20:30
// 減少三小時
carbon.Now().SubHours(3).ToDateTimeString() // 2020-09-05 10:20:30
// 減少一小時
carbon.Now().SubHour().ToDateTimeString() // 2020-09-05 12:20:30
// 增加三分鐘
carbon.Now().AddMinutes(3).ToDateTimeString() // 2020-09-05 13:23:30
// 增加一分鐘
carbon.Now().AddMinute().ToDateTimeString() // 2020-09-05 13:21:30
// 減少三分鐘
carbon.Now().SubMinutes(3).ToDateTimeString() // 2020-09-05 13:17:30
// 減少一分鐘
carbon.Now().SubMinute().ToDateTimeString() // 2020-09-05 13:19:30
// 增加三秒鐘
carbon.Now().AddSeconds(3).ToDateTimeString() // 2020-09-05 13:20:33
// 增加一秒鐘
carbon.Now().AddSecond().ToDateTimeString() // 2020-09-05 13:20:31
// 減少三秒鐘
carbon.Now().SubSeconds(3).ToDateTimeString() // 2020-09-05 13:20:27
// 減少一秒鐘
carbon.Now().SubSecond().ToDateTimeString() // 2020-09-05 13:20:29
日期判斷
// 是否是閏年
carbon.Now().IsLeapYear()
// 是否是週一
carbon.Now().IsMonday()
// 是否是週二
carbon.Now().IsTuesday()
// 是否是週三
carbon.Now().IsWednesday()
// 是否是週四
carbon.Now().IsThursday()
// 是否是週五
carbon.Now().IsFriday()
// 是否是週六
carbon.Now().IsSaturday()
// 是否是週日
carbon.Now().IsSunday()
本作品採用《CC 協議》,轉載必須註明作者和本文連結