-1

我有一个使用 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

ETC?

正在正确显示数据,但我不太确定如何让 DATE_FORMAT 正常工作。

4

2 回答 2

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')

参考:MySQL 手册条目上的 DATE_FORMAT

于 2013-08-14T18:39:27.040 回答
0

除了下面的解决方案之外,这正确的:在处理数据时 - 在您的情况下,使用 REST-API 或其他方式传递日期 - 您通常不想应用格式化。您应该尽可能将数据返回为 RAW,以允许最终处理应用程序根据需要格式化数据。

使用通用格式“2013-08-14 20:45:00 GMT+2”(“年-月-日时:分:秒时区”),因此每个客户都能够以适当的方式重构检索到的数据。

数据应该在它呈现给用户的那一刻被转换 - 不早于一秒钟。

(在日期的原始数据格式上,您可以执行<、、比较或排序操作,而不会做错任何事情。)>equals

于 2013-08-14T18:47:34.977 回答