Fullcalendar js 和 Firefox 中的无效日期,怎么办?

Invalid Date in Fullcalendar js and Firefox, how to?

我正在使用 php 将一些数据发送到 fullcalendar,但日历日期显示为 Invalid DateNaN

查看下面的日期格式,有什么解决办法吗?

PHP

foreach ($dates as $key => $date) {
    //$date->getDate() is a timestamp
    $start = new DateTime($date->getDate());
    $end   = new DateTime($date->getDate() + 1800);

    $array[$key]['start']       = $start->format('c');
    $array[$key]['end']         = $end->format('c');
}

JavaScript

$calendar.fullCalendar({
    header     : h,
    defaultView: 'month',
    slotMinutes: 15,
    editable   : false,
    droppable  : false,
    events     : {
        url : '/api',
        type: 'POST',
        data: data
    }
});

编辑:

我最终使用:

$dA = date('Y-m-d H:i:s', $date->getDate());
$datetimeA = new DateTime($dA);

$array[$key]['start'] = $datetimeA->format(DateTime::ISO8601);

这是因为日期格式不正确,Firefox 需要 UTC 格式才能工作,即:

 yyyy + '-' + mm + '-' + dd + 'T' + hh + ':' + min + 'Z';

behing yyyy 格式为 4 位数字的年份, mm 格式化为 2 位数字的月份(一月 - 00,零很重要), dd 格式化为 2 位数字的日期, hh 小时格式为 2 位数字和 min 分钟格式为 2 位数字。

T 和 Z 是常量。

因此,如果您需要小时和分钟,只需将格式更改为:

$array[$key]['start']       = $start->format('Y-m-d\TH:i:s\Z');
$array[$key]['end']         = $end->format('Y-m-d\TH:i:s\Z');

希望这能奏效。 如果没有,请告诉我,我们会尽力解决:)