Javascript日期toIsString/toJSON向后一天

Javascript日期toIsString/toJSON向后一天,javascript,time,Javascript,Time,我储存两个日期。第一个日期是当前日期,第二个日期是未来日期。要将这些日期转换为年-月-日格式,我使用ToIsString函数。但是,通常(但并非总是)当前日期向后更改一天 我还尝试使用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 =

我储存两个日期。第一个日期是当前日期,第二个日期是未来日期。要将这些日期转换为年-月-日格式,我使用ToIsString函数。但是,通常(但并非总是)当前日期向后更改一天

我还尝试使用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

您的原始时间字符串是本地时间,或者至少它们有一个时区规范。但是:

时区始终为零UTC偏移,由后缀“Z”表示

对于GMT+02时区,这意味着
toISOString
返回的日期/时间比本地时间早两个小时。在某些情况下,这可能是午夜之前的时间,这也可能会呈现不同的日期

toJSON
方法的实现依赖于
toISOString
,因此它具有相同的行为

变通
您可以使用,它使用您的本地时间,并且格式符合瑞典标准,即YYYY-MM-DD,因此您甚至不需要对其进行切片。您还可以指定其他一些国家/地区代码,使其具有相同的国家/地区代码

请显示样本输入值,因为我已经用样本输入(seasure.from和seasure.to)更新了我的帖子。