1

CakePHPの配列形式で返された時間をMySQLの24時間形式に変換したいと思います。コードは次のとおりです。

$this->request->data['Rideoffer']['DepartureTime']

それは戻ります:

array(
'hour' => '05',
'min' => '21',
'meridian' => 'am'

)。

ここで、これをMySQLの時間形式に変換したいと思います。00:00:00-24形式で、この特定の時間に一致するレコードを取得できます。それ、どうやったら出来るの?

4

2 に答える 2

0

FormHelper を使用し、departure_timeフィールドのデータ型が または のいずれかDATETIMEである場合TIME、Cake はすべての検索および保存操作を「自動的に」適切に処理します。

したがって、実際のデータ配列が個別hourに保持されmin、フィールドがデータベースに格納される方法に影響を与えないという事実は、モデルまたはコントローラーで追加のロジックを必要とせずに適切meridianに変換されます。05:21:00今回一致するすべてのレコードを見つけたい場合は、完全なタイムスタンプで簡単に見つけることができます。次のようなものを使用します。

$this->Rideoffer->find('all', array(
    'conditions' => array(
        'Rideoffer.departure_time' => '05:21:00'
    )
));

アップデート

コメントに返信して、挿入された値をすぐに使用する場合は、それを DateTime オブジェクトに変換し、条件でフォーマットします。例えば:

$time =& $this->request->data['Rideoffer']['DepartureTime'];
$date = new DateTime($time['hour'] . ':' . $time['min'] . ' ' . $time['meridian']);

次に、検索結果の日付をフォーマットします。

$this->Rideoffer->find('all', array(
    'conditions' => array(
        'Rideoffer.departure_time' => $date->format('H:i:s')
    )
));
于 2013-02-18T08:16:16.560 に答える
0

cakephpヘルパーの dateFormatが役に立ちます。

dateformat option日付部分を構成できます。

于 2013-02-18T07:48:19.243 に答える