0

SELECTcodeigniter を使用して、いくつかの mysql データを簡単に実行しようとしています。

//setup query
$this->db->select('personId, birthday')
    ->from('person')
    ->where('personId', $personId)
    ->limit(1);

    //execute query
    $query = $this->db->get();

    //fetch result
    $result = $query->row_array();

        //found person
        if(!empty($result)){
            echo $result['birthday'];
        }
    }
}

birthdayフィールドはタイプとして mySQL にありますDATE。DB の値と phpMyAdmin に表示される値は「1980-05-21」ですが、上記のコードでエコーされる値は単純に「1980」、つまり年です。

mysqlタイプをに切り替えてみましたDATETIMEが、何もしませんでした。

私の推測では、それは Codeigniter と関係があり、おそらく結果の「-」文字でさえ関係があると思います。この問題は私を夢中にさせています!誰もこの問題を抱えていて、それを修正する方法を知っていますか?

4

2 に答える 2

0

私はあなたのコードを複製し、すべて正常に動作します.php.iniに何かあるかもしれません. intl 拡張機能がある場合は、date.timezone を設定し、ロケール設定を確認します。テスト目的で、echo $result の後に die() を試してください...おそらく何かが後で起こっています。CodeIgniter 2.1.3 バージョンでコードをテストします。

于 2013-11-07T21:27:41.167 に答える
0

あなたの問題についてはよくわからないので、これはあなたの質問への直接の回答ではありませんdateが、(質問で述べたように)すでに一度変更したため、フィールドを変更するオプションがあるようです。私の意見では、 a を使用するtimestampよりも優れておりdate/datetime、ここにそれについての良い答えがあるので、型をに変更するtimestampと問題が解決する可能性があり、 a のあらゆる種類の操作を簡単に処理できると思いますtimestamp。また、日付を処理CodeIgniterする日付ヘルパーがありますそれは簡単ですが、オプションにすぎませんPHP。 の組み込み関数を使用することもできます。

これは単なる意見です。少なくとも と の間で順序を入れ替える必要timestampはありません。date/datetimeyyyy-mm-dddd-mm-yyyydate('d-m-Y', $timestamp);timestamp

于 2013-11-07T21:35:02.010 に答える