4

あなたのほとんどは、この重複した (ほとんど) 質問を見つけるかもしれませんが、私はそこにあるすべての議論の中で、私が望むものに対する解決策を見つけることができませんでした.

タイプ= DATETIMEのmysqlデータベースに列があり、時間を2013-08-21 20:26:12として保存します。

これで、PHP ページで 2013-08-21 20:26:12 など、そのままエコーできますが、次の形式でエコーしたい:

  1. 8月21日
  2. 2013 年 8 月 21 日
  3. 2013 年 8 月 21 日 (水) 午後 8 時 26 分

データベースから時刻をフェッチして PHP 関数を適用した後にこれを実行できるかどうか、またはデータベースからのフェッチ時に実行できるかどうか教えてください。そしてどうやって?

ありがとう

** 更新: または、date(); を使用して時間を生成できるかどうか。PHP で TIME として mysql データベースに保存し、検索などの時間クエリを実行できるようにします。

4

5 に答える 5

14

を使用strtotime()して時間文字列をタイムスタンプdate()に変換してから、関数を使用して必要な形式に変換します。

$str = '2013-08-21 20:26:12';
echo date('d M ', strtotime($str));
echo date('d M Y', strtotime($str));
echo date('g:i A, l - d M Y', strtotime($str));

出力:

21 Aug 
21 Aug 2013
8:00 PM, Wednesday - 21 Aug 2013

これで始められるはずです。その他のオプションについては、date()関数のドキュメントを参照してください。

デモ!

于 2013-08-21T17:41:01.607 に答える
2

データベースから時刻をフェッチして PHP 関数を適用した後にこれを実行できるかどうか、またはデータベースからのフェッチ時に実行できるかどうか教えてください。そしてどうやって?

  1. DATE_FORMAT()MySQL での使用:

    SELECT DATE_FORMAT(my_column, '%D %b'                   ) FROM my_table;
    SELECT DATE_FORMAT(my_column, '%D %M, %Y'               ) FROM my_table;
    SELECT DATE_FORMAT(my_column, '%l:%i %p, %W - %D %M, %Y') FROM my_table;
    
  2. date()PHP での使用:

    date('jS M',               $ts);
    date('jS F, Y',            $ts);
    date('g:i A, l - jS F, Y', $ts);
    

    (または$tsのようなものを使用して、フィールド値から作成された場所)。strtotime()UNIX_TIMESTAMP()

于 2013-08-21T17:38:47.337 に答える
2
21st Aug
21st August, 2013
8:26 PM, Wednesday - 21st August, 2013



$date="2013-08-21 20:26:12";

date("jS M",strtotime($date));
date("jS F, Y",strtotime($date));
date("h:i A, l - jS F, Y",strtotime($date));
于 2013-08-21T17:46:49.943 に答える
0

DateTimeクラスと日付の書式設定オプションは、これに役立ちます:-

$dateStr = '2013-08-21 20:26:12';
$date = new \DateTime($dateStr);
echo $date->format('dS M');
echo $date->format('dS F, Y');
echo $date->format('h:i A l - dS F, Y');

出力:-


2013 年 8 月 21 日20:26
水曜日 - 2013 年 8 月 21 日

実施例

于 2013-08-21T19:27:40.477 に答える