ホームページ  >  記事  >  バックエンド開発  >  go-carbon1.2.0がリリースされました! ORM のマルチシナリオ サポートを改善および最適化する

go-carbon1.2.0がリリースされました! ORM のマルチシナリオ サポートを改善および最適化する

藏色散人
藏色散人転載
2020-10-13 10:30:472210ブラウズ

以下は、# Golang #のチュートリアル列です。

go-carbon1.2.0がリリースされました! ORM のマルチシナリオ サポートを改善および最適化する

#carbon は、チェーン呼び出しと gorm や xrom などの主流の ORM をサポートする、軽量でセマンティックな開発者フレンドリーな Golang 時間処理ライブラリです

良いです、スターを付けてください

github:github.com/golang-module/carbon

gitee:gitee.com/go-package/carbon

インストールと使用
// 使用github库
go get -u github.com/golang-module/carbon

import (
 "github.com/golang-module/carbon")

// 使用gitee库
go get -u gitee.com/go-package/carbon

import (
 "gitee.com/go-package/carbon")

データベース サポート
データ テーブルが users で、フィールドが id(int)、name(varchar)、age(int) であると仮定します。 Graduated_at(日付)、birthday(日付)、created_at(日時)、updated_at(日時)、deleted_at(日時)

モデルを定義する
type UserModel struct {
 ID  int64  `json:"id"` Name string `json:"name"` Age int `json:"age"` Birthday carbon.Carbon `json:"birthday"` CreatedAt carbon.ToDateTimeString `json:"created_at"` DeletedAt carbon.ToTimestamp `json:"deleted_at"` GraduatedAt carbon.ToDateString `json:"graduated_at"` UpdatedAt carbon.ToTimeString `json:"updated_at"`}
モデルをインスタンス化する
user := UserModel {
 Name: "勾国印", Age: 18, Birthday: carbon.Now().SubYears(18), CreatedAt: carbon.ToDateTimeString{carbon.Now()}, DeletedAt: carbon.ToTimestamp{carbon.Parse("2020-08-05 13:14:15")}, GraduatedAt: carbon.ToDateString{carbon.Parse("2012-09-09")}, UpdatedAt: carbon.ToTimeString{carbon.Now()},}
出力モデル フィールド
user.ID // 18
user.Name // 勾国印
user.Birthday.ToDateString() // 2012-08-05
user.CreatedAt.ToTimestamp() // 2012-08-05 13:14:15
user.DeletedAt.ToDateTimeString() // 1596604455
user.GraduatedAt.AddDay().ToDateString() // 2012-09-10
user.UpdatedAt.ToDateString() // 2012-08-05
JSON 出力モデル
data, _ := json.Marshal(&user)
fmt.Print(string(data))
// 输出
{
 "id": 42, "name": "勾国印", "age": 18, "birthday": "2012-08-05 00:00:00", "created_at": "2020-08-05 13:14:15", "deleted_at": 1596604455 "graduated_at": "2012-09-09", "updated_at": "13:14:15",}
更新ログ

    完璧な単体テスト、コード カバレッジ 100 %
  • ORM のマルチシナリオ サポートの改善と最適化
  • 英語版の README.MD ドキュメントを追加
  • 統合例外処理
  • 統合出力関数の命名規則、Format() が ToFormatString() に変更されました。
  • ネイティブ時間から Carbon インスタンスを作成するための CreateFromGoTime(t time.Time) メソッドを追加しました。Time
  • コード構成構造を最適化し、最終的なメソッドを統合しました。継承不可能です。final.go ファイルに配置します。
  • New() 初期化関数を放棄し、初期化せずに直接使用します。
  • Cookie、W3C、RSS、などの複数の時刻形式の出力を追加します。 RFC7231
  • 新しい ParseByDuration() メソッドは期間文字列 (今日を基準とした) を解析し、正および負の整数/浮動小数点数と記号 ns (ナノ秒)、us (マイクロ秒)、ms (ミリ秒)、s (秒) をサポートします。 ) 、m (分)、h (時間) の組み合わせ
  • 指定した年を加算/減算するときに月をまたぐ現象を防ぐために Nextyears()、Next Year()、Preyears()、Pre Year() メソッドを追加しました
  • 指定した月を追加/削除した後に月をまたぐ現象を防ぐために、NextMonths()、NextMonth()、PreMonths()、PreMonth() メソッドを追加しました
  • 取得する DaysIn Year() メソッドを追加しましたこれ 年間の合計日数です。
  • DaysInMonth() メソッドを追加して、今月の合計日数を取得します。
  • MonthOf Year() メソッドを追加して、その年の月を取得します。
  • DayOf Year () メソッドを追加して、年間の日付を取得します。
  • New DayOfMonth() メソッドを使用して、月の日付を取得します。
  • New DayOfWeek() メソッドを使用して、年間の日付を取得します。曜日
  • 今年の週を取得する WeekOf Year() メソッドを追加しました
  • 今月の週を取得する WeekOfMonth() メソッドを追加しました
  • IsZero( を追加しました) ゼロ値の時間であるかどうかを判断するメソッド
  • 将来の時間であるかどうかを判断する IsFuture() メソッドを追加しました
  • 過去の時間であるかどうかを判断する IsPast() メソッドを追加しました
  • IsNow() メソッドを追加しました。現在時刻であるかどうかを判断します。

以上がgo-carbon1.2.0がリリースされました! ORM のマルチシナリオ サポートを改善および最適化するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlearnku.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。