v2.1.9 增加新增方法 SetLocation() 的描述

This commit is contained in:
gouguoyin 2022-08-01 12:24:44 +08:00
parent 65e2f103f8
commit a04fae84db
3 changed files with 132 additions and 114 deletions

View File

@ -718,6 +718,12 @@ carbon.SetTimezone(carbon.PRC).Now().ToDateTimeString() // 2020-08-05 13:14:15
carbon.SetTimezone(carbon.Tokyo).Now().ToDateTimeString() // 2020-08-05 14:14:15
carbon.SetTimezone(carbon.Tokyo).Now().SetTimezone(carbon.PRC).ToDateTimeString() // 2020-08-05 12:14:15
// 设置地区
utc, _ := time.LoadLocation(carbon.UTC)
carbon.SetLocation(utc).Now().ToDateTimeString() // 2022-06-28 09:25:38
tokyo, _ := time.LoadLocation(carbon.Tokyo)
carbon.SetLocation(tokyo).Now().ToDateTimeString() // 2022-06-28 18:25:38
// 设置区域
carbon.Parse("2020-07-05 13:14:15").SetLocale("en").DiffForHumans() // 1 month ago
carbon.Parse("2020-07-05 13:14:15").SetLocale("zh-CN").DiffForHumans() // 1 月前
@ -1213,7 +1219,7 @@ carbon.Parse("2020-03-21 21:00:00").Lunar().IsTwelfthDoubleHour() // true
###### 定义模型
```go
type Person struct {
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
Birthday1 carbon.DateTime `json:"birthday"`
@ -1442,43 +1448,43 @@ invalid timezone "xxx", please see the file "$GOROOT/lib/time/zoneinfo.zip" for
##### <a id="format-sign-table">格式化符号表</a>
| 符号 | 描述 | 长度 | 范围 | 示例 |
| :------------: | :------------: | :------------: | :------------: | :------------: |
| d | 月份中的第几天,有前导零 | 2 | 01-31 | 02 |
| D | 缩写单词表示的周几 | 3 | Mon-Sun | Mon |
| j | 月份中的第几天,没有前导零 | - |1-31 | 2 |
| S | 第几天的英文缩写后缀一般和j配合使用 | 2 | st/nd/rd/th | th |
| l | 完整单词表示的周几 | - | Monday-Sunday | Monday |
| F | 完整单词表示的月份 | - | January-December | January |
| m | 数字表示的月份,有前导零 | 2 | 01-12 | 01 |
| M | 缩写单词表示的月份 | 3 | Jan-Dec | Jan |
| n | 数字表示的月份,没有前导零 | - | 1-12 | 1 |
| Y | 4 位数字完整表示的年份 | 4 | 0000-9999 | 2006 |
| y | 2 位数字表示的年份 | 2 | 00-99 | 06 |
| a | 小写的上午和下午标识 | 2 | am/pm | pm |
| A | 大写的上午和下午标识 | 2 | AM/PM | PM |
| g | 小时12 小时格式 | - | 1-12 | 3 |
| G | 小时24 小时格式 | - | 0-23 | 15 |
| h | 小时12 小时格式 | 2 | 00-11 | 03 |
| H | 小时24 小时格式 | 2 | 00-23 | 15 |
| i | 分钟 | 2 | 01-59 | 04 |
| s | 秒数 | 2 | 01-59 | 05 |
| c | ISO8601 格式日期 | - | - | 2006-01-02T15:04:05-07:00 |
| r | RFC2822 格式日期 | - | - | Mon, 02 Jan 2006 15:04:05 -0700 |
| O | 与格林威治时间相差的小时数 | - | - | -0700 |
| P | 与格林威治时间相差的小时数,小时和分钟之间有冒号分隔 | - | - | +07:00 |
| T | 时区缩写 | - | - | MST |
| W | ISO8601 格式数字表示的年份中的第几周 | - | 1-52 | 1 |
| N | ISO8601 格式数字表示的星期中的第几天 | 1 | 1-7 | 1 |
| L | 是否为闰年,如果是闰年为 1否则为 0 | 1 | 0-1 | 0 |
| U | 秒级时间戳 | 10 | - | 1611818268 |
| u | 毫秒 | 3 | 000-999 | 999 |
| w | 数字表示的周几 | 1 | 0-6 | 1 |
| t | 月份中的总天数 | 2 | 28-31 | 31 |
| z | 年份中的第几天 | - | 0-365 | 2 |
| e | 当前位置 | - | - | America/New_York |
| Q | 当前季节 | 1 | 1-4 | 1 |
| C | 当前世纪数 | - | 0-99 | 21 |
| 符号 | 描述 | 长度 | 范围 | 示例 |
| :------------: | :------------: |:--:|:----------------:| :------------: |
| d | 月份中的第几天,有前导零 | 2 | 01-31 | 02 |
| D | 缩写单词表示的周几 | 3 | Mon-Sun | Mon |
| j | 月份中的第几天,没有前导零 | - | 1-31 | 2 |
| S | 第几天的英文缩写后缀一般和j配合使用 | 2 | st/nd/rd/th | th |
| l | 完整单词表示的周几 | - | Monday-Sunday | Monday |
| F | 完整单词表示的月份 | - | January-December | January |
| m | 数字表示的月份,有前导零 | 2 | 01-12 | 01 |
| M | 缩写单词表示的月份 | 3 | Jan-Dec | Jan |
| n | 数字表示的月份,没有前导零 | - | 1-12 | 1 |
| Y | 4 位数字完整表示的年份 | 4 | 0000-9999 | 2006 |
| y | 2 位数字表示的年份 | 2 | 00-99 | 06 |
| a | 小写的上午和下午标识 | 2 | am/pm | pm |
| A | 大写的上午和下午标识 | 2 | AM/PM | PM |
| g | 小时12 小时格式 | - | 1-12 | 3 |
| G | 小时24 小时格式 | - | 0-23 | 15 |
| h | 小时12 小时格式 | 2 | 00-11 | 03 |
| H | 小时24 小时格式 | 2 | 00-23 | 15 |
| i | 分钟 | 2 | 01-59 | 04 |
| s | 秒数 | 2 | 01-59 | 05 |
| c | ISO8601 格式日期 | - | - | 2006-01-02T15:04:05-07:00 |
| r | RFC2822 格式日期 | - | - | Mon, 02 Jan 2006 15:04:05 -0700 |
| O | 与格林威治时间相差的小时数 | - | - | -0700 |
| P | 与格林威治时间相差的小时数,小时和分钟之间有冒号分隔 | - | - | +07:00 |
| T | 时区缩写 | - | - | MST |
| W | ISO8601 格式数字表示的年份中的第几周 | - | 1-52 | 1 |
| N | ISO8601 格式数字表示的星期中的第几天 | 1 | 1-7 | 1 |
| L | 是否为闰年,如果是闰年为 1否则为 0 | 1 | 0-1 | 0 |
| U | 秒级时间戳 | 10 | - | 1611818268 |
| u | 毫秒 | - | 0-999 | 999 |
| w | 数字表示的周几 | 1 | 0-6 | 1 |
| t | 月份中的总天数 | 2 | 28-31 | 31 |
| z | 年份中的第几天 | - | 0-365 | 2 |
| e | 当前位置 | - | - | America/New_York |
| Q | 当前季节 | 1 | 1-4 | 1 |
| C | 当前世纪数 | - | 0-99 | 21 |
#### 常见问题

View File

@ -715,7 +715,13 @@ carbon.SetTimezone(carbon.PRC).Now().ToDateTimeString() // 2020-08-05 13:14:15
carbon.SetTimezone(carbon.Tokyo).Now().ToDateTimeString() // 2020-08-05 14:14:15
carbon.SetTimezone(carbon.Tokyo).Now().SetTimezone(carbon.PRC).ToDateTimeString() // 2020-08-05 12:14:15
// 設定ロケール
// リージョンを設定
utc, _ := time.LoadLocation(carbon.UTC)
carbon.SetLocation(utc).Now().ToDateTimeString() // 2022-06-28 09:25:38
tokyo, _ := time.LoadLocation(carbon.Tokyo)
carbon.SetLocation(tokyo).Now().ToDateTimeString() // 2022-06-28 18:25:38
// ロケール設定
carbon.Parse("2020-07-05 13:14:15").SetLocale("en").DiffForHumans()) // 1 month ago
carbon.Parse("2020-07-05 13:14:15").SetLocale("jp").DiffForHumans() // 1 ヶ月前
@ -1439,43 +1445,43 @@ invalid timezone "xxx", please see the file "$GOROOT/lib/time/zoneinfo.zip" for
##### <a id="format-sign-table">書式設定記号表</a>
| 記号 | 説明 | 長さ | 範囲 | 例 |
| :------------: | :------------: | :------------: | :------------: | :------------: |
| d | 月の中の何日目ですか | 2 | 01-31 | 02 |
| D | 略語は何曜日を表しますか | 3 | Mon-Sun | Mon |
| j | 月の中の何日目ですか | - |1-31 | 2 |
| S | 何日目の英語の略語の接尾語普通はjと協力して使います | 2 | st/nd/rd/th | th |
| l | 完全な単語は何曜日を表しますか | - | Monday-Sunday | Monday |
| F | 完全な単語は月を表しますか | - | January-December | January |
| m | 数字が示す月は | 2 | 01-12 | 01 |
| M | 略語の月 | 3 | Jan-Dec | Jan |
| n | 数字が示す月 | - | 1-12 | 1 |
| Y | 数字が示す年 | 4 | 0000-9999 | 2006 |
| y | 数字が示す年 | 2 | 00-99 | 06 |
| a | 小文字の午前と午後の標識 | 2 | am/pm | pm |
| A | 大文字の午前と午後の表示 | 2 | AM/PM | PM |
| g | 時間, 12時間のフォーマット | - | 1-12 | 3 |
| G | 時間, 24時間のフォーマット | - | 0-23 | 15 |
| h | 時間, 12時間のフォーマット | 2 | 00-11 | 03 |
| H | 時間, 24時間のフォーマット | 2 | 00-23 | 15 |
| i | 分 | 2 | 01-59 | 04 |
| s | 秒 | 2 | 01-59 | 05 |
| c | ISO8601 フォーマットの日付 | - | - | 2006-01-02T15:04:05-07:00 |
| r | RFC2822 フォーマットの日付 | - | - | Mon, 02 Jan 2006 15:04:05 -0700 |
| O | グリニッジとの時間差の時間数 | - | - | +0700 |
| P | グリニッジと時間の差の時間数, 時間と分の間にコロンがあります | - | - | +07:00 |
| T | タイムゾーンの略語 | - | - | MST |
| W | ISO8601 フォーマットの数字は年の中の第数週を表します | - | 1-52 | 1 |
| N | ISO8601 フォーマットの数字は曜日の中の何日目を表しますか | 1 | 1-7 | 1 |
| L | うるう年かどうか, うるう年が1であれば, 0です | 1 | 0-1 | 0 |
| U | 秒タイムスタンプ | 10 | - | 1611818268 |
| u | ミリ秒 | 3 | 000-999 | 999 |
| w | 数字の表示の曜日 | 1 | 0-6 | 1 |
| t | 月の総日数 | 2 | 28-31 | 31 |
| z | 年の中の何日目 | - | 0-365 | 2 |
| e | 位置 | - | - | America/New_York |
| Q | 季節 | 1 | 1-4 | 1 |
| C | 世紀 | - | 0-99 | 21 |
| 記号 | 説明 | 長さ | 範囲 | 例 |
| :------------: | :------------: |:---:|:----------------:| :------------: |
| d | 月の中の何日目ですか | 2 | 01-31 | 02 |
| D | 略語は何曜日を表しますか | 3 | Mon-Sun | Mon |
| j | 月の中の何日目ですか | - | 1-31 | 2 |
| S | 何日目の英語の略語の接尾語普通はjと協力して使います | 2 | st/nd/rd/th | th |
| l | 完全な単語は何曜日を表しますか | - | Monday-Sunday | Monday |
| F | 完全な単語は月を表しますか | - | January-December | January |
| m | 数字が示す月は | 2 | 01-12 | 01 |
| M | 略語の月 | 3 | Jan-Dec | Jan |
| n | 数字が示す月 | - | 1-12 | 1 |
| Y | 数字が示す年 | 4 | 0000-9999 | 2006 |
| y | 数字が示す年 | 2 | 00-99 | 06 |
| a | 小文字の午前と午後の標識 | 2 | am/pm | pm |
| A | 大文字の午前と午後の表示 | 2 | AM/PM | PM |
| g | 時間, 12時間のフォーマット | - | 1-12 | 3 |
| G | 時間, 24時間のフォーマット | - | 0-23 | 15 |
| h | 時間, 12時間のフォーマット | 2 | 00-11 | 03 |
| H | 時間, 24時間のフォーマット | 2 | 00-23 | 15 |
| i | 分 | 2 | 01-59 | 04 |
| s | 秒 | 2 | 01-59 | 05 |
| c | ISO8601 フォーマットの日付 | - | - | 2006-01-02T15:04:05-07:00 |
| r | RFC2822 フォーマットの日付 | - | - | Mon, 02 Jan 2006 15:04:05 -0700 |
| O | グリニッジとの時間差の時間数 | - | - | +0700 |
| P | グリニッジと時間の差の時間数, 時間と分の間にコロンがあります | - | - | +07:00 |
| T | タイムゾーンの略語 | - | - | MST |
| W | ISO8601 フォーマットの数字は年の中の第数週を表します | - | 1-52 | 1 |
| N | ISO8601 フォーマットの数字は曜日の中の何日目を表しますか | 1 | 1-7 | 1 |
| L | うるう年かどうか, うるう年が1であれば, 0です | 1 | 0-1 | 0 |
| U | 秒タイムスタンプ | 10 | - | 1611818268 |
| u | ミリ秒 | - | 0-999 | 999 |
| w | 数字の表示の曜日 | 1 | 0-6 | 1 |
| t | 月の総日数 | 2 | 28-31 | 31 |
| z | 年の中の何日目 | - | 0-365 | 2 |
| e | 位置 | - | - | America/New_York |
| Q | 季節 | 1 | 1-4 | 1 |
| C | 世紀 | - | 0-99 | 21 |
#### 人気のある問題

View File

@ -251,7 +251,7 @@ carbon.Parse("2020-08-05 13:14:15").StartOfQuarter().ToDateTimeString() // 2020-
carbon.Parse("2020-08-05 13:14:15").EndOfQuarter().ToDateTimeString() // 2020-09-30 23:59:59
// Start of the month
carbon.Parse("2020-08-05 13:14:15").StartOfMonth().ToStartTimeString() // 2020-08-01 00:00:00
carbon.Parse("2020-08-05 13:14:15").StartOfMonth().ToDateTimeString() // 2020-08-01 00:00:00
// End of the month
carbon.Parse("2020-08-05 13:14:15").EndOfMonth().ToDateTimeString() // 2020-08-31 23:59:59
@ -714,6 +714,12 @@ carbon.SetTimezone(carbon.PRC).Now().ToDateTimeString() // 2020-08-05 13:14:15
carbon.SetTimezone(carbon.Tokyo).Now().ToDateTimeString() // 2020-08-05 14:14:15
carbon.SetTimezone(carbon.Tokyo).Now().SetTimezone(carbon.PRC).ToDateTimeString() // 2020-08-05 12:14:15
// Set location
utc, _ := time.LoadLocation(carbon.UTC)
carbon.SetLocation(utc).Now().ToDateTimeString() // 2022-06-28 09:25:38
tokyo, _ := time.LoadLocation(carbon.Tokyo)
carbon.SetLocation(tokyo).Now().ToDateTimeString() // 2022-06-28 18:25:38
// Set locale
carbon.Parse("2020-07-05 13:14:15").SetLocale("en").DiffForHumans() // 1 month before
carbon.Parse("2020-07-05 13:14:15").SetLocale("zh-CN").DiffForHumans() // 1 月前
@ -1439,43 +1445,43 @@ invalid timezone "xxx", please see the file "$GOROOT/lib/time/zoneinfo.zip" for
##### <a id="format-sign-table">Format sign table</a>
| sign | desc | length | range | example |
| :------------: |:------------------------------------------------------------------------------------------------------:| :------------: | :------------: | :------------: |
| d | Day of the month, padded to 2 | 2 | 01-31 | 02 |
| D | Day of the week, as an abbreviate localized string | 3 | Mon-Sun | Mon |
| j | Day of the month, no padding | - |1-31 | 2 |
| S | English ordinal suffix for the day of the month, 2 characters. Eg: st, nd, rd or th. Works well with j | 2 | st/nd/rd/th | th |
| l | Day of the week, as an unabbreviated localized string | - | Monday-Sunday | Monday |
| F | Month as an unabbreviated localized string | - | January-December | January |
| m | Month, padded to 2 | 2 | 01-12 | 01 |
| M | Month as an abbreviated localized string | 3 | Jan-Dec | Jan |
| n | Month, no padding | - | 1-12 | 1 |
| Y | Four-digit year | 4 | 0000-9999 | 2006 |
| y | Two-digit year | 2 | 00-99 | 06 |
| a | Lowercase morning or afternoon sign | 2 | am/pm | pm |
| A | Uppercase morning or afternoon sign | 2 | AM/PM | PM |
| g | Hour in 12-hour format, no padding | - | 1-12 | 3 |
| G | Hour in 24-hour format, no padding | - | 0-23 | 15 |
| h | Hour in 12-hour format, padded to 2 | 2 | 00-11 | 03 |
| H | Hour in 24-hour format, padded to 2 | 2 | 00-23 | 15 |
| i | Minute, padded to 2 | 2 | 01-59 | 04 |
| s | Second, padded to 2 | 2 | 01-59 | 05 |
| c | ISO8601 date | - | - | 2006-01-02T15:04:05-07:00 |
| r | RFC2822 date | - | - | Mon, 02 Jan 2006 15:04:05 -0700 |
| O | Difference to Greenwich time (GMT) without colon between hours and minutes | - | - | +0700 |
| P | Difference to Greenwich time (GMT) with colon between hours and minutes | - | - | +07:00 |
| T | Abbreviated timezone | - | - | MST |
| W | ISO8601 week of the year | - | 1-52 | 1 |
| N | ISO8601 day of the week | 1 | 1-7 | 1 |
| L | Whether it's a leap year | 1 | 0-1 | 0 |
| U | Unix timestamp with seconds | 10 | - | 1611818268 |
| u | Millisecond, padded to 3 | 3 | - | 999 |
| w | Day of the week | 1 | 0-6 | 1 |
| t | Total days of the month | 2 | 28-31 | 31 |
| z | Day of the year | - | 0-365 | 2 |
| e | Location | - | - | America/New_York |
| Q | Quarter | 1 | 1-4 | 1 |
| C | Century | - | 0-99 | 21 |
| sign | desc | length | range | example |
| :------------: |:--------------------------------------------------------------------------------------------------------:|:------:|:----------------:| :------------: |
| d | Day of the month, padded to 2 | 2 | 01-31 | 02 |
| D | Day of the week, as an abbreviate localized string | 3 | Mon-Sun | Mon |
| j | Day of the month, no padding | - | 1-31 | 2 |
| S | English ordinal suffix for the day of the month, 2 characters. Eg: st, nd, rd or th. Works well with j | 2 | st/nd/rd/th | th |
| l | Day of the week, as an unabbreviated localized string | - | Monday-Sunday | Monday |
| F | Month as an unabbreviated localized string | - | January-December | January |
| m | Month, padded to 2 | 2 | 01-12 | 01 |
| M | Month as an abbreviated localized string | 3 | Jan-Dec | Jan |
| n | Month, no padding | - | 1-12 | 1 |
| Y | Four-digit year | 4 | 0000-9999 | 2006 |
| y | Two-digit year | 2 | 00-99 | 06 |
| a | Lowercase morning or afternoon sign | 2 | am/pm | pm |
| A | Uppercase morning or afternoon sign | 2 | AM/PM | PM |
| g | Hour in 12-hour format, no padding | - | 1-12 | 3 |
| G | Hour in 24-hour format, no padding | - | 0-23 | 15 |
| h | Hour in 12-hour format, padded to 2 | 2 | 00-11 | 03 |
| H | Hour in 24-hour format, padded to 2 | 2 | 00-23 | 15 |
| i | Minute, padded to 2 | 2 | 01-59 | 04 |
| s | Second, padded to 2 | 2 | 01-59 | 05 |
| c | ISO8601 date | - | - | 2006-01-02T15:04:05-07:00 |
| r | RFC2822 date | - | - | Mon, 02 Jan 2006 15:04:05 -0700 |
| O | Difference to Greenwich time (GMT) without colon between hours and minutes | - | - | +0700 |
| P | Difference to Greenwich time (GMT) with colon between hours and minutes | - | - | +07:00 |
| T | Abbreviated timezone | - | - | MST |
| W | ISO8601 week of the year | - | 1-52 | 1 |
| N | ISO8601 day of the week | 1 | 1-7 | 1 |
| L | Whether it's a leap year | 1 | 0-1 | 0 |
| U | Unix timestamp with seconds | 10 | - | 1611818268 |
| u | Millisecond | - | 0-999 | 999 |
| w | Day of the week | 1 | 0-6 | 1 |
| t | Total days of the month | 2 | 28-31 | 31 |
| z | Day of the year | - | 0-365 | 2 |
| e | Location | - | - | America/New_York |
| Q | Quarter | 1 | 1-4 | 1 |
| C | Century | - | 0-99 | 21 |
#### FAQ