diff --git a/sub/subService.go b/sub/subService.go index b73980ddcd..808888024b 100644 --- a/sub/subService.go +++ b/sub/subService.go @@ -933,9 +933,36 @@ func (s *SubService) genRemark(inbound *model.Inbound, email string, extra strin now := time.Now().Unix() switch exp := stats.ExpiryTime / 1000; { case exp > 0: - remark = append(remark, fmt.Sprintf("%d%s⏳", (exp-now)/86400, "Days")) + remainingSeconds := exp - now + days := remainingSeconds / 86400 + hours := (remainingSeconds % 86400) / 3600 + minutes := (remainingSeconds % 3600) / 60 + if days > 0 { + if hours > 0 { + remark = append(remark, fmt.Sprintf("%dD,%dH⏳", days, hours)) + } else { + remark = append(remark, fmt.Sprintf("%dD⏳", days)) + } + } else if hours > 0 { + remark = append(remark, fmt.Sprintf("%dH⏳", hours)) + } else { + remark = append(remark, fmt.Sprintf("%dM⏳", minutes)) + } case exp < 0: - remark = append(remark, fmt.Sprintf("%d%s⏳", exp/-86400, "Days")) + days := exp / -86400 + hours := (exp % -86400) / 3600 + minutes := (exp % -3600) / 60 + if days > 0 { + if hours > 0 { + remark = append(remark, fmt.Sprintf("%dD,%dH⏳", days, hours)) + } else { + remark = append(remark, fmt.Sprintf("%dD⏳", days)) + } + } else if hours > 0 { + remark = append(remark, fmt.Sprintf("%dH⏳", hours)) + } else { + remark = append(remark, fmt.Sprintf("%dM⏳", minutes)) + } } } }