154 lines
3.7 KiB
Go
154 lines
3.7 KiB
Go
package c
|
|
|
|
import (
|
|
"github.com/gogf/gf/os/gtime"
|
|
)
|
|
|
|
//A simple extension for Time based on PHP's Carbon library. https://github.com/uniplaces/carbon
|
|
|
|
//到时间
|
|
//增减时间
|
|
//取时间间隔
|
|
//取某月天数
|
|
//时间到文本
|
|
//取时间部分
|
|
//取年份-
|
|
//取月份-
|
|
//取日-
|
|
//取星期几
|
|
//取小时
|
|
//取分钟
|
|
//取秒
|
|
//指定时间
|
|
//取现行时间
|
|
//置现行时间
|
|
//取日期
|
|
//取时间
|
|
|
|
type C日期时间型 struct {
|
|
Time *gtime.Time
|
|
}
|
|
|
|
func (this *C日期时间型) C取星期几() int64 {
|
|
return C到整数(this.Time.Format("N"))
|
|
}
|
|
func (this *C日期时间型) C取月天数() int64 {
|
|
return C到整数(this.Time.Format("t"))
|
|
}
|
|
|
|
func (this *C日期时间型) C取年份() int64 {
|
|
return C到整数(this.Time.Format("Y"))
|
|
}
|
|
func (this *C日期时间型) C取月份() int64 {
|
|
return C到整数(this.Time.Format("m"))
|
|
}
|
|
func (this *C日期时间型) C取日() int64 {
|
|
return C到整数(this.Time.Format("d"))
|
|
}
|
|
func (this *C日期时间型) C取小时() int64 {
|
|
return C到整数(this.Time.Format("H"))
|
|
}
|
|
func (this *C日期时间型) C取分钟() int64 {
|
|
return C到整数(this.Time.Format("i"))
|
|
}
|
|
func (this *C日期时间型) C取秒() int64 {
|
|
return C到整数(this.Time.Format("s"))
|
|
}
|
|
func (this *C日期时间型) C取毫秒() int64 {
|
|
return C到整数(this.Time.Millisecond())
|
|
}
|
|
func (this *C日期时间型) C取微秒() int64 {
|
|
return C到整数(this.Time.Microsecond())
|
|
}
|
|
func (this *C日期时间型) C取纳秒() int64 {
|
|
return C到整数(this.Time.Nanosecond())
|
|
}
|
|
func (this *C日期时间型) C取时间戳() int64 {
|
|
return this.Time.Timestamp()
|
|
}
|
|
func (this *C日期时间型) C取时间戳毫秒() int64 {
|
|
return this.Time.TimestampMilli()
|
|
}
|
|
func (this *C日期时间型) C取时间戳微秒() int64 {
|
|
return this.Time.TimestampMicro()
|
|
}
|
|
func (this *C日期时间型) C取时间戳纳秒() int64 {
|
|
return this.Time.TimestampNano()
|
|
}
|
|
|
|
func (this *C日期时间型) C时间到文本(format string) string {
|
|
if format == "" {
|
|
format = "Y-m-d H:i:s"
|
|
}
|
|
return this.Time.Format(format)
|
|
}
|
|
|
|
func (this *C日期时间型) C增减日期(年 int, 月 int, 日 int) *C日期时间型 {
|
|
this.Time = this.Time.AddDate(年, 月, 日)
|
|
return this
|
|
}
|
|
func (this *C日期时间型) C增减时间(时 int, 分 int, 秒 int) *C日期时间型 {
|
|
if 时 != 0 {
|
|
this.Time.AddStr(C到文本(时) + "h")
|
|
}
|
|
if 分 != 0 {
|
|
this.Time.AddStr(C到文本(分) + "m")
|
|
}
|
|
if 秒 != 0 {
|
|
this.Time.AddStr(C到文本(秒) + "s")
|
|
}
|
|
return this
|
|
}
|
|
|
|
func (this *C日期时间型) C大于(time *C日期时间型) bool {
|
|
return this.Time.After(time.Time)
|
|
}
|
|
func (this *C日期时间型) C小于(time *C日期时间型) bool {
|
|
return this.Time.Before(time.Time)
|
|
}
|
|
func (this *C日期时间型) C等于(time *C日期时间型) bool {
|
|
return this.Time.Equal(time.Time)
|
|
}
|
|
|
|
// 返回当前区域设置中可读格式的差异。
|
|
// 将过去的值与现在的默认值进行比较时:
|
|
// 1 小时前
|
|
// 5 个月前
|
|
// 将将来的值与现在的默认值进行比较时:
|
|
// 1 小时后
|
|
// 5 个月后
|
|
// 将过去的值与另一个值进行比较时:
|
|
// 1 小时前
|
|
// 5 个月前
|
|
// 将将来的值与另一个值进行比较时:
|
|
// 1 小时后
|
|
// 5 个月后
|
|
func (this *C日期时间型) C到友好时间(d *C日期时间型) string {
|
|
return "暂时没有编写"
|
|
}
|
|
|
|
//到时间
|
|
//增减时间
|
|
//取时间间隔
|
|
//取某月天数
|
|
//时间到文本
|
|
//取时间部分
|
|
|
|
func C取现行时间() *C日期时间型 {
|
|
this := new(C日期时间型)
|
|
this.Time = gtime.Now()
|
|
return this
|
|
}
|
|
func C到时间(s string) *C日期时间型 {
|
|
this := new(C日期时间型)
|
|
if t, err := gtime.StrToTime(s); err == nil {
|
|
this.Time = t
|
|
}
|
|
return this
|
|
}
|
|
func C到时间从时间戳(s int64) *C日期时间型 {
|
|
this := new(C日期时间型)
|
|
this.Time = gtime.NewFromTimeStamp(s)
|
|
return this
|
|
}
|