我正在FullCalendar 2.3.1
使用moment js 2.9.0
,实际上我是这样得到的日期:
var currDateStart = $calendar.fullCalendar('getView').start;
这回报我:
Mon Oct 26 2015 01:00:00 GMT + 0100(ora solare Europa occidentale)
注意:上面的日期是moment object
因此,在下一步中,我希望以ISO格式转换日期:
currDateStart = new Date(new Date(currDateStart).setHours(0)).toISOString();
我得到了这个:
2015-10-25T23:00:00.000Z
但结果不正确,原因应该是:
2015-10-25T00:00:00.000Z
错误的日期错误我的日历渲染事件。我做错了什么?
答案 0 :(得分:1)
结果是正确的,并且符合预期。 ISOString以UTC格式返回日期。注意2015-10-25T23:00:00.000Z
末尾的Z.
您所在的时区为+1 UTC,因此当您设置setHours(0)
时 - 它会设置您所在区域的时间,并且ISOString会以UTC(后面1小时)返回。您可以setHours(1)
来对此进行计数,或者调整使用输出的函数以期望UTC(当地时间 - 1小时)的日期。
答案 1 :(得分:0)
这里发生了什么事情,当我尝试将日期设置为日期时,它会将日期转换为GMT + 0530,然后它会将日期转换为ISO字符串
var currDateStarttemp = 'Mon Oct 26 2015 1:00:00 GMT+0100 (ora solare Europa occidentale)';
var currDateStart = new Date(currDateStarttemp).toISOString();
snippet.log("currDateStart " + currDateStart);
currDateStart = new Date(currDateStart).setUTCHours(0)
snippet.log("setHours " + new Date(currDateStart));
currDateStart = new Date(currDateStart).toISOString();
snippet.log("toISOString " + currDateStart);

<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
&#13;