2

テキスト ファイルからデータベースにデータを移動しています。テキスト ファイルには、「10 月 29 日」と「11 月 1 日」という形式の日付があります (このファイルでは、10 月と 11 月だけが 2 か月です)。日付をmysqlデータベースに保存します。この形式を手動で行わずに日付フィールド (2012 年を想定) に変換するにはどうすればよいですか?

4

3 に答える 3

1
$str = 'Oct 29';
$str = strtotime("$str " . date('Y'));
// add the currect year and convert it into Unix timestamp
$formatted = date('Y-m-d H:i:s',$str);
// then convert it into MySQL datetime format
echo $formatted;
于 2012-11-04T01:11:55.093 に答える
1

テキストファイルを表示せずに、年を2012とする$array as $item['datefield']と、phpだけで日付の変換を実行する配列を含みます。

foreach ($array as $item) {
   // Format other vars...
   $insert_date = date("Y-m-d", strtotime($item['datefield']." 2012"));

 $query_insert = "
  INSERT INTO table_name (column1, column2, datefield,...)
  VALUES ($item['value1'], $item['value2'], $insert_date,...)
 ";
}

日付フィールドにフォーマットがないため、フォーマットにはほとんど意味がありyyyy-mm-dd H:m:sません...

于 2012-11-04T01:16:31.347 に答える
1

以下は機能するはずですが、最適化を行うことができる場合があります。

$date = 'Oct 29';
list($month, $day) = explode(' ',$date);
$mysql_date = date('Y-m-d H:i:s', strtotime("$day $month 2012"));

あなたは逃げることができるかもしれません:

$date = 'Oct 29';
$mysql_date = date('Y-m-d H:i:s', strtotime("$date 2012"));

ただし、実行しているphpのバージョンで後者をテストする必要があります。

于 2012-11-04T01:07:22.303 に答える