将PHP和JSON编码转换为Javascript日期

时间:2012-02-01 03:50:44

标签: php javascript jquery json date

全部, 我通过循环我的数据库并填充一些值来创建一些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存储在数据库中。任何想法将不胜感激!

谢谢!

3 个答案:

答案 0 :(得分:4)

试试这个:

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

答案 1 :(得分: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

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

e.g。为你的'开始'日期

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

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

e.g。如果你想以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 :(得分:0)

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

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

如果您需要传递js日期对象,那么这不适合您。