我从Mongolab获取格式为"2016-02-07T04:11:27.667Z"
要显示日期,我会将它们转换为MM-DD-YYYY
,以使其更具人性化:
obj.converted_date = moment(obj.date).format('MM-DD-YYYY');
出于某种原因,它将2016年2月7日的记录转换为2016年2月6日:
converted_date: "02-06-2016"
date: "2016-02-07T04:11:27.667Z"
为什么会这样?
答案 0 :(得分:5)
之所以发生这种情况,是因为日期代表“当地时间”而不是“utc”表示存储它们,除非您要求它:
moment(obj.date).utc().format('MM-DD-YYYY');
因此,差异由您配置的时区调整日期来表示。
请参阅文档中的UTC。
答案 1 :(得分:2)
您的时间以UTC表示,因为它的末尾是Z
。如果您希望它是当地时间,则应该"2016-02-07T04:11:27.667Z"
而不是"2016-02-07T04:11:27.667"
。
或者,正如Blakes Seven建议的那样,您可以以UTC显示时间,它将显示相同的时间,而不是服务器本地时区的时间偏移量。