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

时间:2012-11-04 00:56:17

标签: php mysql string date

我正在将数据从文本文件移动到数据库。文本文件的日期格式为“10月29日”和“11月1日”(10月和11月是此文件中仅有的2个月)。我将日期保存到mysql数据库中。如何在不手动操作的情况下将此格式转换为日期字段(假设为2012年)?

3 个答案:

答案 0 :(得分: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。

答案 1 :(得分: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;

答案 2 :(得分: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并没有什么意义,因为你的日期字段中没有它......