我的模型上有startDate
和dueDate
。我要根据模型的daysToStart
和daysLeft
值在模型上附加duration
,startDate
和dueDate
字段。
startDate
的天数startDate
startDate
和dueDate
以time.Time
的形式存储在db中。所有计算都应标准化为UTC时间。
编辑:
startDate:"2019-07-09T00:00:00Z"
dueDate:"2019-07-10T00:00:00Z"
type Objective struct {
// fields
}
// attach daysLeft, duration and daysToStart
func (r *Objective) calculateDuration() {
r.Duration = int(math.Round(r.DueDate.Sub(r.StartDate).Hours() / 24))
}
func (r *Objective) calculateDaysLeft() {
r.DaysLeft = int(math.Round(r.DueDate.Sub(time.Now().UTC()).Hours()/24)) + 1
}
func (r *Objective) calculateDaysToStart() {
r.DaysToStart = int(math.Round(r.StartDate.Sub(time.Now().UTC()).Hours()/24)) + 1
}
对于提供的示例,它返回不正确的值,例如,尽管startDate是今天,但它返回dasToStart
= 1,所以它应该为零。