t
This commit is contained in:
28
pkg/lzkit/lzUtils/time.go
Normal file
28
pkg/lzkit/lzUtils/time.go
Normal file
@@ -0,0 +1,28 @@
|
||||
package lzUtils
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"time"
|
||||
)
|
||||
|
||||
// RenewMembership 延长会员有效期
|
||||
// 规则:如果旧到期时间还没过,在旧到期时间上续1年;如果已过期或为空,从当前时间起算1年
|
||||
func RenewMembership(expiry sql.NullTime) sql.NullTime {
|
||||
now := time.Now()
|
||||
var baseTime time.Time
|
||||
if expiry.Valid && expiry.Time.After(now) {
|
||||
// 未过期 → 在旧到期时间上续1年
|
||||
baseTime = expiry.Time
|
||||
} else {
|
||||
// 已过期或为空 → 从现在开始算1年
|
||||
baseTime = now
|
||||
}
|
||||
|
||||
// 增加一年(自动处理闰年)
|
||||
newTime := baseTime.AddDate(1, 0, 0)
|
||||
|
||||
return sql.NullTime{
|
||||
Time: newTime,
|
||||
Valid: true,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user