5

2 つのテキスト フィールドがあります。1 つは 2012 年 8 月 1 日形式の日付用で、もう 1 つは時刻を含むフィールドです。私は現在、午前9時41分という形式の時間フィールドを持っていますが、その形式にはある程度の柔軟性があります(たとえば、24時間の方が簡単な場合)。

文字列を連結してから変換することを計画していました。最初に日付を 2012-08-01 に変換する必要がありますか?

datetime (2012-08-01 09:41:00) に変換するにはどうすればよいですか? それを 08/01/2012 および 09:41am 形式に戻すにはどうすればよいですか?

4

2 に答える 2

6
SELECT STR_TO_DATE(concat('08/01/2012', '09:41am'),'%d/%m/%Y%h:%i');
于 2012-08-01T16:52:21.847 に答える
2

データベース側では、次を使用できます。

STR_TO_DATE()この表の指定子を使用して、データベースに適した形式に変換します。参照

DATE_FORMAT()次に、そのデータベース時間の必要な部分を返します。参照

PHP 側では、以下を使用できます。

  • strtotime()- 英語のテキストによる日時の説明を Unix タイムスタンプに解析する
  • date- 現地時間/日付のフォーマット

strotime渡された文字列の日付/時刻に基づいて Unix タイムスタンプを生成します。両方のフィールド (2012 年 8 月 1 日と午前 9 時 41 分) を渡すと、それに基づいてタイムスタンプが生成されます。プロセスを逆にするには、 を使用しますdate("m/d/Y H:ia")

$field1 = '08/01/2012';
$field2 = '09:41am';

$stamp = strtotime($field1 . ' ' . $field2);

echo date("m/d/Y H:ia", $stamp);

私はこれをテストしていませんが、動作するはずです。

于 2012-08-01T16:55:27.207 に答える