This commit is contained in:
Joe
2026-01-16 15:49:34 +08:00
commit 550d3e1f42
380 changed files with 62024 additions and 0 deletions
+40
View File
@@ -0,0 +1,40 @@
package middleware
import (
"github.com/goravel/framework/contracts/http"
"goravel/app/http/helpers"
)
// TimezoneQuery 时区查询参数转换中间件
// 自动将查询参数中的时间字段从本地时区转换为 UTC 时间用于数据库查询
func TimezoneQuery() http.Middleware {
return func(ctx http.Context) {
// 定义需要转换的时间查询参数名称
timeParams := []string{
"start_time",
"end_time",
"created_at_start",
"created_at_end",
"updated_at_start",
"updated_at_end",
"deleted_at_start",
"deleted_at_end",
}
// 转换每个时间参数
for _, paramName := range timeParams {
timeStr := ctx.Request().Query(paramName, "")
if timeStr != "" {
// 转换为 UTC 时间并存储在 context 中
utcTime := helpers.ConvertTimeToUTC(ctx, timeStr)
// 将转换后的时间存储在 context 中,供控制器使用
ctx.WithValue("timezone_query_"+paramName, utcTime)
}
}
// 继续处理请求
ctx.Request().Next()
}
}