2011-04-02 50 views
1

我的表格格式爲01-Mar-10。當我將這個csv文件導入到我的數據庫中時,它存儲爲0000-00-00。如何在導入時轉換dateformat。或者還有其他方法嗎? plz幫助如何將excel表格導入數據庫時​​將日期轉換爲

這是代碼即時通訊使用導入到數據庫

 $databasetable = "sample"; 
     $fieldseparator = ","; 
     $lineseparator = "\n"; 
     $csvfile = "../uploads/" . basename($_FILES['file']['name']); 
     $addauto = 0; 
     $save = 1; 
     $outputfile = "../temp/output.sql"; 
     if(!file_exists($csvfile)) { 
      #echo $csvfile; 
      echo "File not found. Make sure you specified the correct path.\n"; 
      return 0; 
      exit; 
     } 

     $file = fopen($csvfile,"r"); 

     if(!$file) { 
      #echo "Error opening data file.\n"; 
      return 0; 
      exit; 
     } 

     $size = filesize($csvfile); 

     if(!$size) { 
      echo "File is empty.\n"; 
      return 0; 
      exit; 
     } 

     $csvcontent = fread($file,$size); 

     fclose($file); 

     $lines = 0; 
     $queries = ""; 
     $linearray = array(); 

     foreach(split($lineseparator,$csvcontent) as $line) { 
      $lines++; 
      $line = trim($line," \t"); 
      $line = str_replace("\r","",$line); 
      $line = str_replace("'","\'",$line); 
      $linearray = explode($fieldseparator,$line); 
      $linemysql = implode("','",$linearray); 
      if($addauto) 
       $query = "insert into $databasetable values('','$linemysql');"; 
      else 
       $query = "insert into $databasetable values('$linemysql');"; 
      $queries .= $query . "\n"; 
      @mysql_query($query); 

回答

0
$d = "01-Mar-10"; 
$in_db = date('Y-m-d', strtotime($d)); 
echo $in_db; 

輸出:

2010-03-01 

使用date()轉換獲取日期的有效形式,在數據庫中存儲。使用strtotime()將excel日期格式轉換爲時間戳。

爆炸數據$ linearray使用

$linearray[ID]=date('Y-m-d', strtotime($linearray[ID])); 

改變它的價值,以適當的格式後。使用日期字段將元素的數組索引替換爲ID。

相關問題