直接上代码
FriendlyTime.go
package tools
import (
"fmt"
"math"
"time"
)
// Custom format friendly time
type FriendlyTime string
// Scan value of time.Time
func (t *FriendlyTime) Scan(v interface{}) error {
value, ok := v.(time.Time)
if ok {
var tmpStr string
nowTime := GetNowTime()
// second
diffTime := nowTime.Unix() - value.Unix()
// 友好时间展示
switch {
case diffTime <= 0:
tmpStr = "刚刚"
case diffTime <= 60:
tmpStr = fmt.Sprintf("%d秒前", diffTime)
case diffTime <= 3600:
tmpStr = fmt.Sprintf("%.0f分钟前", math.Ceil(float64(diffTime/60)))
case diffTime <= 86400:
tmpStr = fmt.Sprintf("%.0f小时前", math.Ceil(float64(diffTime/60/60)))
default:
// cur year
if nowTime.Year() == value.Year() {
tmpStr = value.Format("01-02 15:04"