Php 将此字符串转换为日期格式以保存到mysql

Php 将此字符串转换为日期格式以保存到mysql,php,mysql,string,date,Php,Mysql,String,Date,我正在将数据从文本文件移动到数据库。文本文件的日期格式为“10月29日”和“11月1日”(此文件中只有10月和11月两个月)。我希望将日期保存到mysql数据库中。如何将此格式转换为日期字段(假设为2012年),而无需手动执行此操作?以下内容应能正常工作,但可能会进行优化: $date = 'Oct 29'; list($month, $day) = explode(' ',$date); $mysql_date = date('Y-m-d H:i:s', strtotime("$day $mo

我正在将数据从文本文件移动到数据库。文本文件的日期格式为“10月29日”和“11月1日”(此文件中只有10月和11月两个月)。我希望将日期保存到mysql数据库中。如何将此格式转换为日期字段(假设为2012年),而无需手动执行此操作?

以下内容应能正常工作,但可能会进行优化:

$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年是一个数组,其中包含
$array as$item['datefield']
,并且您希望仅在php中实现日期转换:

$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;
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
没有什么意义,因为您的日期字段中没有它