我使用最新的fullcalendar和momentjs。我的时区是 GMT + 0530
我的流程步骤是;
步骤1)在Fullcalendar中选择:func(...)我捕获用户选择创建事件的日期/日期范围。我将开始/结束日期作为时刻对象。如果我选择一天; momentjs值是;
开始: 2017年11月1日星期三00:00:00 GMT + 0000
结束: 2017年11月2日星期四00:00:00 GMT + 0000
问题1 - 我不能将结束日期定在同一天吗?否则Fullcalendar会将事件创建2天。目前我通过减去1天的时间来减少工作(这看起来并不正确)。
步骤2)使用滑块我捕捉事件开始/结束时间。在滑块开始/结束时,在相反的两端是从0到1440的分钟。我将选定的时间范围转换为时刻对象;
moment().startOf('day').add(start, 'minutes'); //slider's left drag
moment().startOf('day').add(end, 'minutes'); //slider's right drag
步骤3) - 使用步骤1 将所选时间设置为所选日期;
startDate.set({ 'hour': startTime.get('hour'), 'minute': startTime.get('minute') });
endDate.set({ 'hour': endTime.get('hour'), 'minute': endTime.get('minute') });
现在,事件开始/结束的时刻.toString()显示为一个例子;
日期1: 2017年11月1日星期三07:00:00 GMT + 0000
日期2: 2017年11月1日星期三12:30:00 GMT + 0000 //我做一个date.subtract(1,' d')以避免fullCalendar呈现活动到额外的一天。想知道是否有更好的方法
现在我想要的活动正确地设定为2017年11月1日星期三上午7点到下午12点半
问题2 在Fullcalendar视图中,渲染是正确的。但是在事件阵列中;每个时刻对象的日期都是正确的时间已经重置。
相当令人沮丧......所以我只是将FullCalendar放在一边,并使用应该有效的最终日期对momentjs进行一些测试。
日期1: 2017年11月1日星期三07:00:00 GMT + 0000
日期2: 2017年11月1日星期三12:30:00 GMT + 0000
我使用时刻将日期1转换为时刻对象(startDate,' date'); 它创建了一个时刻对象,在Console中它显示了我上面的日期/时间。如果我这样做的话;
start.hour() or start.minute() //= 0
上面应该给我一小时= 07,分钟= 00但不是0?
start.toString() // = Mon Nov 20 2017 00:00:00 GMT+0530
start.get('date') // = 20!!!!
但是我希望它能让我回来 2017年11月1日星期三07:00:00 GMT + 0000
问题3 我做错了什么?