Sir*_*ius 18
你需要转换weeksToAdd成time.Duration:
myDate.Add(time.Hour * 24 * 7 * time.Duration(weeksToAdd))
Run Code Online (Sandbox Code Playgroud)
在Go中,类型别名不能互换使用,即使time.Duration在技术上也是如此int64.
此外,这里,即使数字常量24和7没有明确输入,它们仍然可以按原样使用,请参阅https://blog.golang.org/constants以获得深入的解释.
有关正在运行的示例,请参见http://play.golang.org/p/86TFFlixWj.
正如在评论和另一个答案中所提到的,当工作持续时间超过24小时时,time.AddDate()优选使用time.Add(),因为time.Duration基本上代表纳秒.在工作数天,数周,数月和数年时,由于诸如夏令时,闰年以及可能的闰秒等因素,必须采取很多措施.
time.Duration类型的文档和代表单位的相关常量强调了这个问题(https://golang.org/pkg/time/#Duration):
没有Day或更大单位的定义,以避免在夏令时时区转换中出现混淆.