1

日付が d/m/y の形式になっています。それらをDATETIME列に挿入するにはどうすればよいですか?

4

6 に答える 6

1

日付を任意の形式に変換するdate()には、php の関数を使用する必要があります。strtotime()

MySQL データベースYY-MM-DDは datetime データ型の形式で日付を格納するため、たとえば日付がある場合

$date = '26/05/2012';

date()strtotime( )を使用して変換できます

$formatDate = date('Y-m-d', strtotime('26/05/2012'));

これにより、データベースに挿入できる日付が変換26/05/2012されます。2012-05-26

タイムスタンプ データ型を使用してデータベースに日付を格納している場合は、現在の日付を UNIX タイムスタンプに変換し、たとえばデータベースに格納するだけです。

$date = strtotime('26/05/2012');
//this will convert the date to unix timestamp

アップデート:

@wallyk (ありがとう) が指摘したように、 strtotime() はdd/mm/yyフォーマットを処理しません。/修正は、コードの下のスラッシュをmに置き換える-ことです。

date('Y-m-d', strtotime(str_replace('/', '-', '26/05/2012')));
于 2012-05-26T06:38:12.253 に答える
1

MySQL のSTR_TO_DATE()関数を使用します。

INSERT INTO my_table VALUES (STR_TO_DATE('26/5/12', '%e/%c/%y'))
于 2012-05-26T06:39:10.687 に答える
0

これを試して:

$mysqldate = date("m/d/y g:i A", $datetime);
于 2012-05-26T06:36:25.180 に答える
0

$date = date('d/m/Y');

$date = strtotime($date); //UNIXタイムスタンプ形式

于 2012-05-26T06:39:31.810 に答える
-1

基本的にアメリカの日付形式でMM/DD/YYYYあり、提供しDD/MM/YYYYているためstartotime()、この入力でnull値が返されます。(MM/DD/YYYY)前述の日付形式を使用している場合、さまざまな場所でさらに多くの問題が発生するため、アメリカの標準的な日付形式に従う必要があると思います..

これで確認すると

echo date('Y-m-d',  strtotime('05/26/2012') );

そしてそれは正常に動作しています..

于 2012-05-28T11:52:56.067 に答える
-2

DATE列を文字列列に変更し、いつでもデータを挿入できます。日付が正しいかどうかを確認するには、正規表現を使用できます。

于 2012-05-26T06:38:52.640 に答える