Add timestamp millisecond

tags/v1.5.1 v1.5.1
Stanly 2 years ago
parent 8caad09446
commit 19e5e81945

@ -10,12 +10,12 @@ const (
FormatDatetime = "2006-01-02 15:04:05" FormatDatetime = "2006-01-02 15:04:05"
) )
// Local 本地時區 // Location 本地時區
var Local = time.Local var Location = time.Local
// SetLocation 設定時區 // SetLocation 設定時區
func SetLocation(name string) { func SetLocation(name string) {
Local, _ = time.LoadLocation(name) Location, _ = time.LoadLocation(name)
} }
// Timestamp 時間戳 // Timestamp 時間戳
@ -26,9 +26,14 @@ func GetUnixNow() Timestamp {
return Timestamp(time.Now().Unix()) return Timestamp(time.Now().Unix())
} }
// GetUnixMilliNow 取得現在時間戳記
func GetUnixMilliNow() Timestamp {
return Timestamp(time.Now().UnixMilli())
}
// GetUnix 嘗試取得時間戳記 // GetUnix 嘗試取得時間戳記
func GetUnix(format, datetime string) (Timestamp, error) { func GetUnix(format, datetime string) (Timestamp, error) {
t, err := time.ParseInLocation(format, datetime, Local) t, err := time.ParseInLocation(format, datetime, Location)
return Timestamp(t.Unix()), err return Timestamp(t.Unix()), err
} }
@ -48,6 +53,11 @@ func (t Timestamp) Time() time.Time {
return time.Unix(t.Int64(), 0) return time.Unix(t.Int64(), 0)
} }
// TimeMilli 轉為time類型
func (t Timestamp) TimeMilli() time.Time {
return time.UnixMilli(t.Int64())
}
// Date 回傳日期字串 // Date 回傳日期字串
func (t Timestamp) Date() string { func (t Timestamp) Date() string {
if t == 0 { if t == 0 {
@ -55,7 +65,7 @@ func (t Timestamp) Date() string {
} }
return time. return time.
Unix(t.Int64(), 0). Unix(t.Int64(), 0).
In(Local). In(Location).
Format(FormatDate) Format(FormatDate)
} }
@ -66,26 +76,46 @@ func (t Timestamp) Datetime() string {
} }
return time. return time.
Unix(t.Int64(), 0). Unix(t.Int64(), 0).
In(Local). In(Location).
Format(FormatDatetime) Format(FormatDatetime)
} }
// NowSub 與現在的時間差 // Since 與現在的時間差
func (t Timestamp) NowSub() time.Duration { func (t Timestamp) Since() time.Duration {
return time.Since(t.Time()) return time.Since(t.Time())
} }
// SinceMilli 與現在的時間差
func (t Timestamp) SinceMilli() time.Duration {
return time.Since(t.TimeMilli())
}
// Sub 時間差 // Sub 時間差
func (t Timestamp) Sub(t2 time.Time) time.Duration { func (t Timestamp) Sub(t2 time.Time) time.Duration {
return t2.Sub(t.Time()) return t2.Sub(t.Time())
} }
// SubMilli 時間差
func (t Timestamp) SubMilli(t2 time.Time) time.Duration {
return t2.Sub(t.TimeMilli())
}
// After 是否在指定時間後 // After 是否在指定時間後
func (t Timestamp) After(t2 time.Time) bool { func (t Timestamp) After(t2 time.Time) bool {
return t.Time().After(t2) return t.Time().After(t2)
} }
// AfterMilli 是否在指定時間後
func (t Timestamp) AfterMilli(t2 time.Time) bool {
return t.TimeMilli().After(t2)
}
// AfterNow 是否在目前時間後 // AfterNow 是否在目前時間後
func (t Timestamp) AfterNow() bool { func (t Timestamp) AfterNow() bool {
return t.After(time.Now()) return t.After(time.Now())
} }
// AfterMilliNow 是否在目前時間後
func (t Timestamp) AfterMilliNow() bool {
return t.AfterMilli(time.Now())
}

Loading…
Cancel
Save