> 백엔드 개발 > Golang > go-carbon1.2.0이 출시되었습니다! ORM에 대한 다중 시나리오 지원 개선 및 최적화

go-carbon1.2.0이 출시되었습니다! ORM에 대한 다중 시나리오 지원 개선 및 최적화

藏色散人
풀어 주다: 2020-10-13 10:30:47
앞으로
2238명이 탐색했습니다.

튜토리얼 칼럼에서 GO-CARBON 1.2.0 버전을 소개하는 내용인데, 도움이 필요한 친구들에게 도움이 되었으면 좋겠습니다!

carbon은 연쇄 호출과 gorm 및 xrom과 같은 주류 ORM을 지원하는 가볍고 의미가 있으며 개발자 친화적인 Golang 시간 처리 라이브러리입니다

go-carbon1.2.0이 출시되었습니다! ORM에 대한 다중 시나리오 지원 개선 및 최적화좋다고 생각하시면 별점을 주세요

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")
로그인 후 복사

데이터베이스 지원데이터 테이블이 사용자이고 필드에 ID(int)가 있다고 가정합니다. ), 이름(varchar), age(int),graded_at(날짜), birthday(날짜),created_at(날짜 시간),update_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 문서
  • Unify 예외 처리
  • 출력 함수 명명 규칙을 통합하고 Format()을 ToFormatString()으로 변경
  • CreateFromGoTime(t time.Time) 메서드를 추가하여 기본 시간에서 Carbon 인스턴스를 생성합니다.Time
  • 코드 구성 구조 최적화, 상속 불가능 최종 메소드는 final.go 파일로 통합
  • 초기화 없이 바로 사용할 수 있는 New() 초기화 함수를 포기하세요
  • Cookie, W3C, RSS, RFC7231 등 여러 시간 형식 출력 추가
  • ParseByDuration( ) 메서드는 기간 문자열(오늘 기준)을 구문 분석하여 양수 및 음수 정수/부동 소수점 및 기호 ns(나노초), us(마이크로초), ms(밀리초), s(초), m(분), h(시간)
  • 을 지원합니다.
  • 지정된 연도를 더하거나 뺄 때 월이 교차하는 현상을 방지하기 위해 NextYears(), NextYear(), PreYears(), PreYear() 메소드 추가
  • NextMonths(), NextMonth(), PreMonths(), PreMonth() 추가 특정 월을 더하거나 뺀 후 월이 넘어가는 현상을 방지하는 메소드
  • 올해의 총 일수를 구하는 New DaysInYear() 메소드
  • 이달의 총 일수를 구하는 New DaysInMonth() 메소드
  • 날짜를 가져오는 MonthOfYear() 메서드 추가
  • 날짜를 가져오는 DayOfYear() 메서드 추가
  • 월의 날짜를 가져오는 DayOfMonth() 메서드 추가
  • 날짜를 가져오는 DayOfWeek() 메서드 추가 요일
  • 연도의 주를 가져오는 WeekOfYear() 메서드 추가
  • 월의 주를 가져오는 WeekOfMonth() 메서드 추가
  • 0인지 확인하는 IsZero() 메서드 추가 값 시간
  • 미래 시간인지 확인하는 IsFuture() 메서드 추가
  • 과거 시간인지 확인하는 IsPast() 메서드 추가
  • 현재 시간인지 확인하는 IsNow() 메서드 추가

위 내용은 go-carbon1.2.0이 출시되었습니다! ORM에 대한 다중 시나리오 지원 개선 및 최적화의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:learnku.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿