フォームのような日付を取る PHP のフォーラムがあります
dd/mm/yyyy hh:mm:ss
。ただし、SQL の場合は DATETIME として as の形式で挿入する必要がありますyyyy-mm-dd hh:mm:ss
。このデータを変換するにはどうすればよいですか?
質問する
35794 次
4 に答える
19
日時の形式が間違っています:dd/mm/yyyy hh:mm:ss
。おそらくあなたは意味しますd/m/Y H:i:s
5.3以降のバージョンを使用している場合は、日時を別の形式に安全に変換する方法があります。次に例を示します。
$timestamp = '31/05/2001 12:22:56';
$timestamp = DateTime::createFromFormat('d/m/Y H:i:s', $timestamp);
echo $timestamp->format('Y-m-d H:i:s');
または、より手続き的な方法が好きな場合:
$timestamp = '31/05/2001 12:22:56';
$timestamp = date_create_from_format('d/m/Y H:i:s', $timestamp);
echo date_format($timestamp, 'Y-m-d H:i:s');
以前の提案に注意してください。完全に間違っているものもあれば、エラーにつながる可能性があるものもあります。
于 2012-05-21T16:03:01.690 に答える
3
strtotime と date を使用して、フォーマットを作り直すことができます。
$new_date = date( "Y-m-d H:i:s", strtotime( $old_date ) );
これが行うことは、古い日付 ( dd/mm/yyyy hh:mm:ss
) を取り、それを UNIX タイムスタンプに変換し、それを PHP の日付関数で使用して、日付を目的の形式にフォーマットすることです。
于 2012-05-21T15:46:44.323 に答える
2
考えられるいくつかの方法のうちの 2 つ:
- コードで変換し、変換された値を mysql に渡します。
$mysqldate = date( 'Y-m-d H:i:s', $phpdate );
- 組み込み関数を使用して、mysql に作業を行わせます。
$query = "UPDATE table SET datetimefield = FROM_UNIXTIME($phpdate) ...";
于 2012-05-21T15:46:44.040 に答える
1
上記のような形式から日時を取得できる場合は、次の関数を使用するだけです。
function localToMysql($dateTime){
$date_chunks = explode('/', $dateTime);
$time_chunks = explode(' ', $date_chunks[2]);
$final_format = $time_chunks[0] . "-" . $date_chunks[1] . "-" . $date_chunks[0] . " " . $time_chunks[1];
$final_format を返します。}
于 2012-05-21T15:50:40.027 に答える