MySQLはデータベースに(デフォルトで)日付を 'YYYY-MM-DD'として保存します。日付のフィールドタイプは 'DATE'です(時間を保存する必要はありません)。デフォルトで変更する簡単な方法はありますか? DD/MM/YYYY?
2つの異なるテーブルで異なる日付を呼び出しますが、コードのどこにも日付変数などに似たものはありません!うまくいけば、これは簡単な変更ですか?
PHPでは、次のことができます。
このような少し、私は言うだろう:
$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
クラスを使用することであり、特に:
DateTime::__construct
DBから返された日付を解析しますDateTime::format
日付を任意の形式にフォーマットします。たとえば、コードのこの部分:
$date = new DateTime('2010-03-19');
echo $date->format('d/m/Y');
あなたはこの出力を得るでしょう:
19/03/2010
Mysql組み込み関数を使用するだけ DATE_FORMAT()
SELECT DATE_FORMAT(some_date_field, "Y/m/d");
あなたはあなたのページであなたが望む任意のフォーマットで日付を表示できます、mysqlでは本当にわかりません、phpではこの関数を使用できます:date(string $ format [、int $ timestamp])。だからあなたはこれを行うことができます:
echo date( "d/m/Y"、strtotime($ your_date));
ここで完全な説明を見つけることができます: http://php.net/manual/en/function.date.php
DBから取得した後、$time = strtotime($value)
を使用してPHPのタイムスタンプに変換します。次に、date("d/m/Y", $time)
を使用して、その形式で取得します。
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と表示されます。
このmysql関数は正しい形式を結果に返します
SELECT DATE_FORMAT(date_field, "%M %d %Y");
$dtShowDate = $_POST['dtShowDate']; $date =explode('-', $dtShowDate)0; $showdate = $date[2]."-".$date[0]."-".$date[1];
必要に応じて日付を設定します