Go 时间中文个性化处理
现在有些时间比较个性化,比如:5年前,11月前,20天前,23小时前,59分钟前,59秒前,刚刚... 等等,Go 语言可没有这些函数处理,我相信多数语言也不会内置处理此类的东西的,现在自己写个方法,首先要算出当前时间和给定的时间差,就是秒差,有了这个秒差,再进一步人工处理。废话少说,贴上代码吧(代码只是瞬间的思路和随手写法,有不当之处,请不吝留言补充)
package lib import ( "fmt" "time" ) //格式化时间,如 5年前,11月前,20天前,23小时前,59分钟前,59秒前,刚刚 func PrettyTimeZh(myTime time.Time) string { seconds := time.Now().Sub(myTime).Seconds() //60*60*24*30.4*12=31518720 一年的秒数 if seconds > 31518720 { return fmt.Sprintf("%d年前", int(seconds/31518720)) } //60*60*24*30.4=2626560 一月的秒数 if seconds > 2626560 { return fmt.Sprintf("%d月前", int(seconds/2626560)) } //60*60*24=86400 一天的秒数 if seconds > 86400 { return fmt.Sprintf("%d天前", int(seconds/86400)) } //60*60=3600 一小时的秒数 if seconds > 3600 { return fmt.Sprintf("%d小时前", int(seconds/3600)) } //60 一分钟的秒数 if seconds > 60 { return fmt.Sprintf("%d分钟前", int(seconds/60)) } if seconds > 1 { return fmt.Sprintf("%d秒前", int(seconds)) } return fmt.Sprintf("刚刚") }
注意:一年的一月,平均值定为 30.4天
哇~~~ 竟然还没有评论!