【发布时间】:2019-03-30 01:29:17
【问题描述】:
我目前有一个使用 PHP 和 MYSQL (AWS RDS) 设置的全日历应用程序。
事件开始和结束时间以类似于Fri Mar 29 2019 09:00:00 GMT-0700 (Pacific Daylight Time) 的字符串形式存储在数据库中,这些字符串来自event.start 和event.end 属性。
然后,使用 load.php(由 events: load.php 调用)加载它们,如下所示:
<?php
include 'dbconfig.php';
$conn = $dbConnection;
$query = "SELECT * FROM Events ORDER BY id";
$statement = $conn->prepare($query);
$statement->execute();
$data = $statement->fetchAll();
$results = array();
foreach($data as $row) {
$results[] = array(
'id' => $row["id"],
'title' => $row["title"],
'resourceId' => $row["resource"],
'start' => $row["start_event"],
'end' => $row["end_event"]
);
}
echo json_encode($results);
此时,它们显示;但是,它们总是提前 7 小时显示(例如,09:00:00 变为 16:00:00)。
我认为这是因为当数据来自数据库时,它以某种方式忽略了时区,但是当我使用 timezone: 'UTC' 更改时区时,没有任何反应。
任何帮助/建议将不胜感激,谢谢!
【问题讨论】:
-
start_event和end_event列是什么数据类型? -
@Nick Strings - 这不是最佳的,但我不确定如何正确解析它们
-
@Nick 这可能是问题的根源。我将研究在字符串进入数据库之前将其转换为日期的方法。
-
您可能想查看
DateTime类。您也可以使用它来转换输出数据。Fri Mar 29 2019 09:00:00 GMT-0700 (Pacific Daylight Time)是您的字符串的确切格式吗? -
@Nick 这就是格式。我只是查看了该类并尝试使用它,尽管我对 PHP 有点陌生,老实说不知道如何使用。
标签: php mysql fullcalendar fullcalendar-scheduler fullcalendar-4