Fullcalendar js 和 Firefox 中的无效日期,怎么办?
Invalid Date in Fullcalendar js and Firefox, how to?
我正在使用 php 将一些数据发送到 fullcalendar,但日历日期显示为 Invalid Date
或 NaN
查看下面的日期格式,有什么解决办法吗?
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');
希望这能奏效。
如果没有,请告诉我,我们会尽力解决:)
我正在使用 php 将一些数据发送到 fullcalendar,但日历日期显示为 Invalid Date
或 NaN
查看下面的日期格式,有什么解决办法吗?
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');
希望这能奏效。 如果没有,请告诉我,我们会尽力解决:)