【问题标题】:Convert PHP and JSON encode to a Javascript Date将 PHP 和 JSON 编码转换为 Javascript 日期
【发布时间】:2012-02-23 19:40:04
【问题描述】:

所有, 我通过循环访问我的数据库并填充一些值来创建一些 JSON 数组。执行此操作的代码是:

$return_arr = array();
$fetch = mysql_query("SELECT * FROM calendar_events"); 
while ($row = mysql_fetch_array($fetch, MYSQL_ASSOC)) {
    $row_array['id'] = $row['id'];
    $row_array['title'] = $row['title'];
    $row_array['start'] = $row['start'];
    $row_array['end'] = $row['end'];
    $row_array['allDay'] = $row['allDay'];
    $row_array['description'] = $row['description'];

    array_push($return_arr,$row_array);
}
echo json_encode($return_arr);

这很好用,只是它不能正确显示日期。当我找到正确显示日期的示例时,它看起来像这样:

{
    title: 'Birthday Party',
    start: new Date(y, m, d, 12, 0),
    end: new Date(y, m, d, 14, 0),
    allDay: false
}

如何使用 PHP 像这样格式化我的日期,使其看起来一样。我的数据作为 DATETIME 存储在数据库中。任何想法将不胜感激!

谢谢!

【问题讨论】:

  • new Date(y, m, d, 12, 0) 肯定不是 JSON。这是 Javascript 代码。
  • 你应该通过这个并运行类似row.start = new Date(row.start);

标签: php javascript jquery json date


【解决方案1】:

从 MySQL 检索的日期(在 $row 数组中)将采用“YYYY-MM-DD HH:MM:SS”形式,因为它们以 MySQL DATETIME 类型存储。

"DATETIME 类型用于同时包含日期和时间的值 部分。 MySQL 检索并显示 'YYYY-MM-DD 中的 DATETIME 值 HH:MM:SS' 格式。" - The DATE, DATETIME, and TIMESTAMP Types - MySQL 5.5 Reference Manual

此格式是PHP DateTime classSupported Date and Time Formats 之一。这意味着您可以轻松地从您的 MySQL DATETIME 值construct a PHP DateTime object

例如为您的“开始”日期

$start = new DateTime($row['start']);

然后,您可以在新创建的 DateTime 对象上使用 DateTime::format 方法,以您喜欢的任何格式将其打印为字符串。

例如如果您想以 DD-MM-YYYY 的形式将日期放入 $row_array

$row_array['start'] = $start->format('d-m-Y');

另请注意,建议使用MySQL Improved Extension - mysqli 连接到 MySQL 数据库。

“如果您使用的是 MySQL 4.1.3 或更高版本,强烈建议您改用 mysqli 扩展。” - php.net - mysqli overview

【讨论】:

    【解决方案2】:

    使用 php 的 date() 函数创建日期字符串。

    $dateStr = date("Y-m-d", $time);
    

    如果您需要传递 js 日期对象,那么这不是您的解决方案。

    【讨论】:

      【解决方案3】:

      试试这个:

       $row_array['start'] = date('Y-m-d', strtotime($row['start']));
       $row_array['end'] = date('Y-m-d', strtotime($row['end']));
      

      【讨论】:

        猜你喜欢
        • 2017-10-12
        • 1970-01-01
        • 1970-01-01
        • 2023-03-31
        • 1970-01-01
        • 2012-06-05
        • 2020-03-19
        • 2014-10-15
        • 1970-01-01
        相关资源
        最近更新 更多