Maison > développement back-end > Golang > go-carbon1.2.0 est sorti ! Améliorer et optimiser la prise en charge multi-scénarios pour ORM

go-carbon1.2.0 est sorti ! Améliorer et optimiser la prise en charge multi-scénarios pour ORM

藏色散人
Libérer: 2020-10-13 10:30:47
avant
2240 Les gens l'ont consulté
Ce qui suit est présenté par

Golang La colonne tutoriel présentera la version Go-Carbon 1.2.0 à tout le monde, j'espère qu'elle sera utile aux amis dans le besoin !

go-carbon1.2.0 est sorti ! Améliorer et optimiser la prise en charge multi-scénarios pour ORM

carbon est une bibliothèque de traitement du temps Golang légère, sémantique et conviviale pour les développeurs qui prend en charge les appels en chaîne et les ORM grand public tels que gorm et xrom

Si vous pensez c'est bien, s'il te plaît, donne-lui une étoile

github:github.com/golang-module/carbon

gitee:gitee.com/go-package/carbon

Installer et utiliser
// 使用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")
Copier après la connexion

Prise en charge de la base de données
Supposer que la table de données correspond aux utilisateurs et que les champs sont id(int), name(varchar), age(int),graduate_at( date), anniversaire(date), créé_à(dateheure), mis à jour_à(dateheure), supprimé_à(dateheure)

Définir le modèle
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"`}
Copier après la connexion
Instancier le modèle
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()},}
Copier après la connexion
Champs du modèle de sortie
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
Copier après la connexion
Modèle de sortie 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",}
Copier après la connexion
Journal de mise à jour

    Tests unitaires parfaits, couverture de code à 100 %
  • Parfaire et optimiser la prise en charge multi-scénarios pour ORM
  • Nouvelle version anglaise de la documentation README.MD
  • Unifier la gestion des exceptions
  • Unifier les règles de dénomination des fonctions de sortie, Format() modifié à ToFormatString()
  • Ajout de la méthode CreateFromGoTime(t time.Time) pour créer une instance Carbon à partir de l'heure native.Time
  • Optimiser la structure de l'organisation du code et unifier les méthodes finales non héritables Mettez-le dans la version finale Fichier .go
  • Abandonnez la fonction d'initialisation New() et utilisez-la directement sans initialisation
  • Ajoutez plusieurs sorties au format d'heure, telles que Cookie, W3C, RSS, RFC7231
  • Ajouté nouvelle méthode ParseByDuration() pour analyser la chaîne de durée (par rapport à aujourd'hui), prenant en charge les nombres et symboles entiers positifs et négatifs/à virgule flottante ns (nanosecondes), us (microsecondes), ms (millisecondes), s (secondes), combinaison de m ( minutes), h (heures)
  • Ajout des méthodes NextYears(), NextYear(), PreYears(), PreYear() pour éviter le phénomène de croisement de mois lors de l'ajout/soustraction d'une année spécifiée
  • Ajout des méthodes NextMonths(), NextMonth(), PreMonths() et PreMonth() pour éviter le phénomène de croisement de mois après l'ajout/soustraction du mois spécifié
  • Ajout de la méthode DaysInYear() pour obtenir ce nombre total de jours dans l'année
  • Ajoutez la méthode DaysInMonth() pour obtenir le nombre total de jours dans ce mois
  • Ajoutez la méthode MonthOfYear() pour obtenir le mois de l'année
  • Ajoutez la méthode DayOfYear() pour obtenir le jour de l'année
  • Ajoutez la méthode DayOfMonth() pour obtenir le jour du mois
  • Ajoutez la méthode DayOfWeek() pour obtenir le jour de la semaine
  • Ajout de la méthode WeekOfYear() pour obtenir la semaine de l'année
  • Ajout de la méthode WeekOfMonth() pour obtenir la semaine du mois
  • Ajout de la méthode IsZero() pour déterminer s'il s'agit d'un temps de valeur nulle
  • Ajout de la méthode IsFuture() pour déterminer s'il s'agit d'une heure future
  • Ajout de la méthode IsPast() pour déterminer si c'est une heure passée
  • Ajout de la méthode IsNow() Déterminer si c'est l'heure actuelle

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:learnku.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal