Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 具有完整日历差异的Unix偏移量_Javascript_Jquery_Fullcalendar_Momentjs - Fatal编程技术网

Javascript 具有完整日历差异的Unix偏移量

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

我想在通过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.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()的矩函数,但它成功了。谢谢!我已将它粘贴在问题的底部。