go+beego自定义公共函数编写及实现根据时间戳计算与当前时间的间距及格式化单位
Go  /  管理员 发布于 3年前   1388
学习go已经有好几天了,准备把我的博客网站用go语言的beego框架重构一下,首页基本已经出来,后面在慢慢写步骤过程,
今天就在用写首页的时候需要用到的自定义公共函数功能,我模板调用需要,所以记录一下
1.创建公共函数
公共函数也算是工具,新建文件夹utils,并在该文件夹下创建functions.go文件
//公共函数
package utils
import (
"math"
"sort"
"strconv"
"time"
"github.com/astaxie/beego"
)
func Init() {
beego.AddFuncMap("FormatDate", FormatDate) //模板中使用{{FormatDate $out}}或{{$out|FormatDate}}
//有新的函数就依次加入
}
//根据时间戳计算与当前时间的间距及格式化单位
func FormatDate(in string) (out string) {
timeUnix := time.Now().Unix() //当前时间戳
inn, _ := strconv.ParseInt(in, 10, 64)
outt := timeUnix - inn
f := map[string]string{
"1": "秒",
"60": "分钟",
"3600": "小时",
"86400": "天",
"604800": "星期",
"2592000": "个月",
"31536000": "年",
}
var keys []string
for k := range f {
keys = append(keys, k)
}
//sort.Strings(keys)
//数字字符串 排序
sort.Slice(keys, func(i, j int) bool {
numA, _ := strconv.Atoi(keys[i])
numB, _ := strconv.Atoi(keys[j])
return numA < numB
})
for _, k := range keys {
v2, _ := strconv.Atoi(k)
cc := math.Floor(float64(int(outt) / int(v2)))
if 0 != cc {
out = strconv.FormatFloat(cc, 'f', -1, 64) + f[k] + "前"
}
}
return
}
2.入口文件main.go中初始化公共函数文件
import (
"gblog/utils"
)
func init() {
utils.Init() //注册函数
beego.BConfig.WebConfig.Session.SessionOn = true
}
3.view中使用 (用来格式化我的文章时间戳)
在我的views目录下的index.html文件里调用:{{FormatDate $elem.pubtime}}
<div class="list-group">
{{range $ind, $elem := .arts}}
<a href="/art/390" class="list-group-item">
<span style="float:right;color:#999;">
<i class="icon ion-eye"></i> {{$elem.view}} |
<small>{{FormatDate $elem.pubtime}}</small></span>
{{$elem.title}}
</a>
{{end}}
</div>
4.看看效果
ps: 都是利用下班时间,所以更新慢一点,
后面跟着写首页控制器,模板,布局收尾分离,分页,等文章
123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..路人 在
php中使用hyperf框架调用讯飞星火大模型实现国内版chatgpt功能示例中评论 教程很详细,如果加个前端chatgpt对话页面就完美了..Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号