2

我正在使用angular-bootstrap-calendar并且我的事件列表具有以下格式:

{"events":[{"eventid":"7","title":"Events","type":"info","startsAt":"2015-09-24T10:00:00+00:00","endsAt":"2015-09-24T11:00:00+00:00","draggable":"true","resizable":"true"}]}

但是当我的事件显示在日历中时,它显示的是上午 6 点而不是上午 10 点。

我猜它必须对我的日期进行碳转换?

$startAt = Carbon::parse($appointments['appointment_start'])->toATOMString();

或将我的日期转换为 Javascript 日期对象和时区

 $http.get('../api/events').success(function(events) {

 //  Convert dates to Javascript Date Object
 for (var i = 0; i < events.events.length; i++) {
    events.events[i].startsAt = new Date(events.events[i].startsAt);
    events.events[i].endsAt   = new Date(events.events[i].endsAt);
 }

不知道我应该如何处理这个?我想我的活动日期(即 2015-09-24T10:00:00+00:00 )应该有不同的格式?

4

1 回答 1

3

找到了解决方案。

需要在其中添加时区:

$startAt = Carbon::parse($appointments['appointment_start'], \Auth::user()->timezone)->toATOMString();

在您的情况下,可以使用变量 ($timezone) 设置时区

$startAt = Carbon::parse($appointments['appointment_start'], $timezone)->toATOMString();

或硬编码 ('Europe/London') :

$startAt = Carbon::parse($appointments['appointment_start'], 'Europe/London')->toATOMString();
于 2015-09-24T18:48:17.397 回答