web-dev-qa-db-ja.com

日付形式(DBまたは出力)をdd / mm / yyyyに変更します-PHP MySQL

MySQLはデータベースに(デフォルトで)日付を 'YYYY-MM-DD'として保存します。日付のフィールドタイプは 'DATE'です(時間を保存する必要はありません)。デフォルトで変更する簡単な方法はありますか? DD/MM/YYYY?

2つの異なるテーブルで異なる日付を呼び出しますが、コードのどこにも日付変数などに似たものはありません!うまくいけば、これは簡単な変更ですか?

15
Jess

PHPでは、次のことができます。

  • strtotime を使用して、日付をタイムスタンプに変換します
  • date を使用してフォーマットします

このような少し、私は言うだろう:

$timestamp = strtotime($date_from_db);
echo date('d/m/Y', $timestamp);

ただし、これは1970年から2038年までの日付に対してのみ機能します。 timestamps は1970-01-01から数えて32ビットの整数として格納されるためです。


MySQLでは date_format 関数でうまくいきます。
例えば :

mysql> select date_format(curdate(), '%d/%m/%Y');
+------------------------------------+
| date_format(curdate(), '%d/%m/%Y') |
+------------------------------------+
| 19/03/2010                         |
+------------------------------------+
1 row in set (0.03 sec)


そして、完全を期すために、1970-2038の制限を受けないPHPの別の解決策は、DateTimeクラスを使用することであり、特に:

たとえば、コードのこの部分:

$date = new DateTime('2010-03-19');
echo $date->format('d/m/Y');

あなたはこの出力を得るでしょう:

19/03/2010
20
Pascal MARTIN

Mysql組み込み関数を使用するだけ DATE_FORMAT()

SELECT DATE_FORMAT(some_date_field, "Y/m/d");
4
John Conde

あなたはあなたのページであなたが望む任意のフォーマットで日付を表示できます、mysqlでは本当にわかりません、phpではこの関数を使用できます:date(string $ format [、int $ timestamp])。だからあなたはこれを行うことができます:

echo date( "d/m/Y"、strtotime($ your_date));

ここで完全な説明を見つけることができます: http://php.net/manual/en/function.date.php

2
D.Martin

DBから取得した後、$time = strtotime($value)を使用してPHPのタイムスタンプに変換します。次に、date("d/m/Y", $time)を使用して、その形式で取得します。

1

Zendのようなフレームワークを使用した場合、データベースと日付のフォーマットを処理するクラスがたくさんあるので、とても簡単です。そうすると、出力は常にブラジルの日付形式として表示されます。 Delphi TDateFieldが現在のコンピュータでWindowsの日付形式を使用するのと同じように、Zendは独自の構成で検索します。

このスクリプトを使用して、上の行に配置します。

$(function(){
    var pickerOpts = {
        dateFormat: "yy-mm-dd"
    };  
    $("#datepicker").datepicker(pickerOpts);
});

そしてこれはあなたのフォームにあります。

<input id=**"datepicker" type="date"** name="Start"  size="9" value="<?php  

echo $Start;

?>" />

ページではd/m/yと表示されますが、データベースではy/m/dと表示されます。

1
Nurfaezah Hanis

このmysql関数は正しい形式を結果に返します

SELECT DATE_FORMAT(date_field, "%M %d %Y");
0
Nandhini

$dtShowDate = $_POST['dtShowDate']; $date =explode('-', $dtShowDate)0; $showdate = $date[2]."-".$date[0]."-".$date[1];

必要に応じて日付を設定します

0
Keval Mehta