【问题标题】:Carbon, Javascript Date Objects and timezoneCarbon、Javascript 日期对象和时区
【发布时间】:2015-12-22 11:18:00
【问题描述】:

我正在使用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 )应该有不同的格式?

【问题讨论】:

    标签: javascript php angularjs php-carbon


    【解决方案1】:

    找到了解决办法。

    需要在其中添加时区:

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

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

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

    或硬编码(“欧洲/伦敦”):

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

    【讨论】:

      猜你喜欢
      • 2018-01-03
      • 2017-02-19
      • 2013-10-29
      • 2011-04-30
      • 2019-06-05
      • 2015-12-10
      • 2011-09-15
      • 2012-12-01
      • 2014-05-31
      相关资源
      最近更新 更多