-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

等?

データは正しく表示されていますが、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」(「年-月-日 時:分:秒のタイムゾーン」) を使用して、すべてのクライアント取得したデータを適切な方法でリファクタリングできるようにします。

データは、ユーザーに提示された瞬間に変換する必要があります - 1 秒も早く。

(日付のデータ形式では、何も問題なく、比較またはソート操作<を実行できます。)>equals

于 2013-08-14T18:47:34.977 に答える