我存储了两个日期。第一个日期是当天,第二个日期是未来日期。要将这些日期转换为年 - 月 - 日格式,我使用toISOSstring函数。但通常(但不总是)当前日期会向后更改一天。
我也尝试使用toJSON函数。但一切都没有改变。
season.from = "Sun Apr 02 2017 18:29:52 GMT+0200 (CEST)"
season.to = "Fri Apr 21 2017 18:29:52 GMT+0200 (CEST)"
var date1 = new Date(season.from);
var date2 = new Date(season.to);
season.from = date1.toISOString().slice(0,10);
season.to = date2.toISOString().slice(0,10);
console.log(season.from); // one day backwards (e.g. 2017-04-01 not 2017-04-02)
console.log(season.to); // proper date somewhere in the future
答案 0 :(得分:0)
您的原始时间字符串是当地时间,或者至少它们具有时区规范。但是toISOString
returns the UTC time:
时区始终为零UTC偏移,由后缀“Z”
表示
对于GMT + 02时区,这意味着toISOString
返回的日期/时间比当地时间早两个小时。在某些情况下,这可能是午夜之前的时间,这也可以呈现不同的日期。
toJSON
方法的实施取决于toISOString
,因此它具有相同的行为。
您可以使用toLocaleDateString('se')
,它使用您当地的时间,并根据瑞典标准格式化,即YYYY-MM-DD,因此您甚至不需要对其进行切片。您可以指定其他一些国家/地区代码也可以使用相同的代码。