我遇到了一个奇怪的问题,即相同的日期对象在title属性和infoWindow中的格式不同。

在我的Angular控制器中,我设置日期格式如下:

var expirationDate = new Date(session.data.expiry_date);


然后,在我附加到范围的标记对象中,将以下格式化的日期传递给:

var marker = {
  id: session.data.value,
  latitude: session.geolocation.location.latitude,
  longitude: session.geolocation.location.longitude,
  icon: icon,
  options: {title: 'Expiration: ' + expirationDate},
  expirationDate: expirationDate
};


在我的title中,我看到的是'Fri Aug 07 2015 18:03:39 GMT-0400',但是在我的infoWindow中,我看到的是“ 2015-08-07T22:03:39.672Z”。

最佳答案

options: {title: 'Expiration: ' + expirationDate},


在连接发生之前,expirationDate在此处隐式转换为字符串,并且与直接作为Date对象输出时相比,它转换为其他字符串表示形式。

在浏览器控制台中尝试以下操作:

>>> var d = new Date();
Date 2015-08-09T17:34:13.735Z
>>> d
Date 2015-08-09T17:34:13.735Z
>>> 'Expiration: ' + d
"Expiration: Sun Aug 09 2015 19:34:13 GMT+0200 (CEST)"

09-11 18:28