我有一个使用MySQL和PDO的PHP / JSON脚本,现在数据运行良好。 代码:
<?php
header('Content-type: application/json; charset=utf-8');
header("access-control-allow-origin: *");
$dsn = "mysql:host=localhost;dbname=myradio";
$username=test;
$password=test;
$pdo = new PDO($dsn, $username, $password);
$rows = array();
$stmt = $pdo->prepare("SELECT *, DATE_FORMAT(start, '%d%M') FROM mystation");
$stmt->execute();
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo '{"success":true,"error":"","data":{"schedule":';
echo json_encode($rows);
echo "]}}";
?>
我如何使用DATE_FORMAT将我的字段开始和结束(都存储为DATETIME)显示如下: 16/08/2013 00:00:00
等?
正确显示数据,但我不太确定如何让DATE_FORMAT正常工作。
答案 0 :(得分:4)
将正确的格式字符串传递给查询中的DATE_FORMAT
:
SELECT
*,
DATE_FORMAT(start, '%d/%m/%Y %H:%i:%s') AS the_date
FROM mystation
然后,当您遍历行时,格式化日期将在the_date
列中显示。
下面的Marty McVry建议的以下格式化字符串也有效:
DATE_FORMAT(start, '%d/%m/%Y %T')
答案 1 :(得分:0)
除了下面的解决方案之外, 正确:当处理数据时 - 在您的情况下使用REST-API或其他东西传递日期 - 您通常不希望应用格式化。您应该尽可能返回AS RAW数据,以允许最终处理应用程序根据需要格式化数据。
使用普通格式'2013-08-14 20:45:00 GMT + 2'('年 - 月 - 日时:分:第二时区'),以便每个客户能够重构以适当方式检索的数据。
数据应该转换片刻它会提前发送给用户 - 不久之前。
(在日期的原始数据格式上,您可以执行<
,>
,equals
比较或排序操作,而不会出错。)