1

6時間以上かけてこれを実行し、公開されているさまざまなソリューションを試した後、正確な質問をします。

ユーザーに米国形式の日付と時刻をhtml形式で入力してもらいたい。今日の形式は12/16/2012 02:5324時間形式を使用しています。

それをstart_dateと呼びましょう。

次に、start_dateを含むレコードをmysqlデータベースのdatetimeタイプフィールドに挿入します。PHP5.2を使用しています。私が見たソリューションの多くは5.3を必要とし、5.2の回避策はどれも機能しませんでした。

誰かが私に正確な例を教えてもらえますか?ありがとうございました。

4

5 に答える 5

2
  1. 正規表現または文字列処理を使用して、現在の形式からフィールドを抽出します。
  2. MySQL形式で日付を作成します。
  3. データベースに挿入します。

ここを参照してください:PHP 5.2(またはそれ以前)と同等のdate_create_from_format

于 2012-12-17T08:02:43.533 に答える
2

実際には、日付の形式を mysql テーブルに挿入することはできません。日時フィールドに配置するには、形式を YYYY-mm-dd Hour:min:sec にする必要があります。ただし、フィールド タイプを varchar として使用する場合は、フォーマットを気にする必要はありません。任意の形式で挿入できます。

于 2012-12-17T08:07:58.457 に答える
2

または、MySQL の解析に頼ることもできます。

SELECT STR_TO_DATE('12/16/2012 02:53', '%m/%d/%Y %H:%i')

注: これは 2 桁の月、日、時間、つまり 1 ではなく 01 を想定しています。他の形式については、 MySQL 日付形式を参照してください。

また、このアプローチを実際に使用するには、失敗した解析試行を処理する必要があります。たとえば、Datetime 列NOT NULLに書き込もうとするとすべての挿入または更新が失敗するように、Datetime 列を作成できますNULL(無効な日付STR_TO_DATEが返されます)。NULL

于 2012-12-17T08:12:36.117 に答える
0

あなたはまだ誰も提供していない例を求めたので、ここにあります:-

$start_date = date("Y-m-d H:i:s", strtotime("12/16/2012 02:53"));
echo $start_date;

出力:-

2012-12-16 02:53:00

この形式は、MySqlDateTimeタイプと一致します。

PHP5.2で動作することも示す動作例をここで参照してください。

strtotimedateについては、マニュアルを参照してください。

于 2012-12-17T18:54:02.177 に答える
0

使用できますstrtotime()。形式に従って日付を解析します。たとえば、/(MM/DD/YYYY) を使用する日付はアメリカ形式を使用して解析され、-または.(DD-MM-YYYY または DD.MM.YYYY) を使用する日付はヨーロッパ形式を使用して解析されます。ドキュメントの 3 番目のメモを参照してください。

可能であれば、5.4 へのアップグレードを検討する必要があります。そこでは、本当に素晴らしい日付クラスを使用できます。

于 2012-12-17T08:56:19.560 に答える