ここに私が抱えている問題があります。
私はデータベースの行としてdatetimeを持っています.phpスクリプトからデータベースに正しいdatetimeを挿入するようにphpを設定するにはどうすればよいですか?
MySQLの日付/時刻形式はyyyy-mm-dd mm:hh:ss
です。時間や日付の値を他の形式で挿入すると、ゴミ箱に入れられてデフォルト値に設定される可能性があります。必要に応じて、 str_to_date()などの関数を使用して、不適合の文字列をネイティブのMySQL値に変換できます。
これを試して...
<?php
function format_mysql_datetime($raw) {
$format = '%Y-%m-%d %H:%M:%S';
$stringtime = strtotime($raw);
return strftime($format, $stringtime);
}
$raw = date('c');
$sql='insert into myTable (theDateTimeField)
values ('.format_mysql_datetime($raw).')';
mysql_query($sql);
?>
これは、time() の代わりに date('c') を使用すると機能します。デフォルトのタイムゾーンを設定していることを確認してください。そうしないと、間違った時間が表示される可能性があります。date_default_timezone_setを参照してください。
mysql_* を使用しないでください。代わりに、PDO を使用してください。コードは sql インジェクションに対して脆弱であり、クエリで外部入力を使用するときは常にこれを防ぐ必要があります。日付の処理方法を強調し、別の新しい概念の導入と混同しないようにしたかったため、PDO を使用して回答を書きませんでした。
これらのドキュメントもチェックしてください。