mirror of
https://gitee.com/johng/gf
synced 2026-07-05 21:32:17 +08:00
58 lines
1.3 KiB
Go
58 lines
1.3 KiB
Go
package gtime
|
||
|
||
import (
|
||
"time"
|
||
)
|
||
|
||
// 类似与js中的SetTimeout,一段时间后执行回调函数
|
||
func SetTimeout(t time.Duration, callback func()) {
|
||
go func() {
|
||
time.Sleep(t)
|
||
callback()
|
||
}()
|
||
}
|
||
|
||
// 类似与js中的SetInterval,每隔一段时间后执行回调函数,当回调函数返回true,那么继续执行,否则终止执行,该方法是异步的
|
||
// 注意:由于采用的是循环而不是递归操作,因此间隔时间将会以上一次回调函数执行完成的时间来计算
|
||
func SetInterval(t time.Duration, callback func() bool) {
|
||
go func() {
|
||
for {
|
||
time.Sleep(t)
|
||
r := callback()
|
||
if !r {
|
||
break;
|
||
}
|
||
}
|
||
}()
|
||
}
|
||
|
||
// 获取当前的纳秒数
|
||
func Nanosecond() int64 {
|
||
return time.Now().UnixNano()
|
||
}
|
||
|
||
// 获取当前的微秒数
|
||
func Microsecond() int64 {
|
||
return time.Now().UnixNano()/1e3
|
||
}
|
||
|
||
// 获取当前的毫秒数
|
||
func Millisecond() int64 {
|
||
return time.Now().UnixNano()/1e6
|
||
}
|
||
|
||
// 获取当前的秒数(时间戳)
|
||
func Second() int64 {
|
||
return time.Now().UnixNano()/1e9
|
||
}
|
||
|
||
// 获得当前的日期(例如:2006-01-02)
|
||
func Date() string {
|
||
return time.Now().Format("2006-01-02")
|
||
}
|
||
|
||
// 获得当前的时间(例如:2006-01-02 15:04:05)
|
||
func Datetime() string {
|
||
return time.Now().Format("2006-01-02 15:04:05")
|
||
}
|