Javascript 具有完整日历差异的Unix偏移量
我想在通过fullCalendar获取momentjs实例时进行检查 我在eventRender回调Javascript 具有完整日历差异的Unix偏移量,javascript,jquery,fullcalendar,momentjs,Javascript,Jquery,Fullcalendar,Momentjs,我想在通过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_=start.u
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_=start.unix();
var start_h=start.format(“HH:mm”);
控制台日志(atime);
控制台日志(atime_h);
控制台日志(启动);
控制台日志(启动);
现在记录的是:
1408024477
15:54
1407888000
00:00
1408024477==2014年8月14日星期四15:54:37==正确
但是1407888000==2014年8月13日星期三02:00:00,我希望是00:00而不是02:00
因此,event.unix()/format()和我创建的那一刻是有区别的
有人知道发生了什么事吗
编辑:
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(),我会得到这两个时刻相同的时间戳。但当我展示它们时,相差两个小时
.utc one在过去两个小时内返回,而对于我来说没有正确的一个。时间戳不是两小时前的
但是对于event.start(它具有\u isUTC=true
),时间戳是未来两个小时(!),格式化后显示正确
所以,也许我需要举办我的活动。开始时不是UTC,不知何故返回两个小时
在评论中按请求编辑,这是我现在使用的:
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);
首先尝试将event.start日期转换为utc,下面介绍如何在vanilla js中执行此操作:
start_utc = new Date(start.getUTCFullYear(), start.getUTCMonth(), start.getUTCDate(), start.getUTCHours(), start.getUTCMinutes(), start.getUTCSeconds());
然后你可以调用
.unix()
,它应该会给你预期的时间戳。你的event.start是utc格式吗?因为如果不是,这可能只是一个时区问题。你能给我们event.start的console.log结果,没有HH:mm格式吗?是的,它可能与时区:日期有关{2014年8月14日星期四02:00:00 GMT+0200}我现在正在尝试一些东西。我编辑了我的问题。我最终在新的日期()中使用了诸如start.month()的矩函数,但它成功了。谢谢!我已将它粘贴在问题的底部。