带有fullCalendar差异的Unix偏移量



当我通过fullCalendar获得一个momentjs实例时,我想放置一个检查。

我在eventRender回调

var calendar = $('#calendar').fullCalendar('getCalendar');
var atime = calendar.moment();
var atime_h = atime.format("HH:mm");
atime = atime.unix();
var start = calendar.moment(event.start);
var start_u = start.unix();
var start_h = start.format("HH:mm");
console.log(atime);
console.log(atime_h);
console.log(start_u);
console.log(start_h);

现在记录的是:

1408024477
15:54
1407888000
00:00

1408024477 == Thu Aug 14 15:54:37 2014 ==是正确的

但是1407888000 == Wed Aug 13 02:00:00 2014,在那里我期望00:00而不是02:00

所以事件.unix()/format.()和我创建的时刻之间是有区别的。

有人知道发生了什么事吗?

编辑:

因此,如果我创建两个新的时刻:moment()和moment().utc(),我将获得相同的时间戳。但是当我显示它们时,却有两个小时的差异。

.utc返回过去的两个小时,对我来说没有正确的那个。时间戳不是2小时。

但是对于事件。start(有_isUTC=true,时间戳是未来两小时(!),格式化后显示正确。

所以也许我需要我的事件。开始不是世界标准时间,而且还晚了两个小时?

在注释中按请求编辑,这是我现在使用的:

                var start = calendar.moment(event.start);
                console.log(start);
                start_utc = new Date(start.year(), start.month(), start.date(),  start.hour(), start.minute(), start.second());
                var start = calendar.moment(start_utc);
                console.log(start);

尝试转换您的事件。开始日期先到utc,这是如何在香草js中做到的:

start_utc = new Date(start.getUTCFullYear(), start.getUTCMonth(), start.getUTCDate(),  start.getUTCHours(), start.getUTCMinutes(), start.getUTCSeconds());

然后你可以在上面调用.unix(),它应该会给你期望的时间戳。

相关内容

  • 没有找到相关文章

最新更新