1

我使用最新的 fullcalendar 和 momentjs。我的时区是GMT+0530

我的流程步骤是;

第 1 步)在 Fullcalendar select: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') });

现在,以事件开始/结束的 moment.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

我使用 moment(startDate, 'date'); 将 Date 1 转换为 moment 对象;它创建一个时刻对象,并在控制台中显示我上面的日期/时间。如果我这样做了;

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我做错了什么?

4

0 回答 0