1

だから私は問題があります。次の形式のフォーム テキスト入力フィールドからの入力を変換しようとしています: 08/06/2013 mysql の datetime 列に挿入できる値に。

私はこれを試しました

$startdate_timestamp = strtotime($this->startdate); 
// $this->startdate is the value from the input field
$this->startdate = date("YYYY-MM-DD HH:MM:SS",$startdate_timestamp);

しかし、それは何もしていないようです。これ以外にうまくいく方法はありますか?私は Yii フレームワークを使用しているため、コードが奇妙に見えます:)

4

3 に答える 3

5

strtotime()頭はいいけど超能力者でも天才でもないし、失敗したら大失敗する。特に のようなあいまいな形式では使用しないでくださいm/d/y。として扱われないという保証はありませんd/m/y

代わりにdate_create_from_format()を使用してください。これにより、入力形式を明示的に指定できます。dおよびm部分の処理方法を制御できるため、これははるかに信頼性が高くなります。

$ts = date_create_from_format('m/d/Y', '08/06/2013');
$start_date = $ts->format('Y-m-d H:i:s');
于 2013-08-16T18:52:51.440 に答える
-1
$this->startdate = date("Y-m-d H:i:s", strtotime($this->startdate));

これにより、MYSQL と互換性のある YYYY-MM-DD HH:MM:SS 形式になります。

于 2013-08-16T18:53:02.787 に答える