我使用FullCalendar 2.3.1
和moment js 2.9.0
,实际上我以这种方式获得日期:
var currDateStart = $calendar.fullCalendar('getView').start;
this return me:
星期一2015年10月26日01:00:00 GMT+0100 (ora solare Europa occidentale)
注:以上日期为moment object
下一步我要把日期转换成ISO格式:
currDateStart = new Date(new Date(currDateStart).setHours(0)).toISOString();
我得到这个:
2015 - 10 - 25 t23:00:00.000z
但是结果是不正确的,因为应该是:
错误的日期bug我的日历渲染事件。我做错了什么?2015 - 10 - 25 t00:00:00.000z
结果是正确的,正如预期的那样。ISOString返回UTC格式的日期。注意2015-10-25T23:00:00.000Z
末尾的Z。
你在一个+1 UTC的时区,所以当你设置setHours(0)
-它设置的时间在你的区域,和ISOString返回UTC(这是1小时后)。您可以使用setHours(1)
来对此进行计数,或者调整使用输出的函数以期望UTC(本地时间- 1小时)的日期。
当我尝试设置日期时,它会将日期转换为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>