读取txt文件日期00-00-000

时间:2013-03-14 19:04:30

标签: php text-files

我试图读取文本文件。

这是我的文本文件的示例:

  

“20130228”,“0000079511”,“ESTEVES PAIVA TERESA HELENA”,“”,“4”,“PAGO   UNICO”, “”, “”, “”, “”, “”,0.00,0.00,0.00,0.00,2000.00, “20121213”

你可以想象我有两个日期20130228和20121213,第五列是一个数字,但当我读取文件并填写我的数据库中的表时,我在每个日期得到00-00-0000而0 4号。

这是我的代码,用于读取和插入表格中的信息:

if ($type == "text/csv") {
            move_uploaded_file($temp, "upload/$name");

            $fp = fopen("upload/$name",'r') or die("no se puede abrir el archivo");

                do { 
            if ($data[0]) { 
                mysql_query("INSERT INTO contacts (fecha_pago, cedula_alumno, nombre_alumno, mencion, codigo_forma) VALUES 
                    ( 
                        '".addslashes($data[0])."', 
                        '".addslashes($data[1])."', 
                        '".addslashes($data[2])."'
                        '".addslashes($data[3])."'
                        '".addslashes($data[4])."' 
                    ) 
                "); 
            } 
        } while ($data = fgetcsv($fp,1000,",","'"));

提前感谢您的帮助

1 个答案:

答案 0 :(得分:1)

您需要解析日期,即在执行INSERT之前解析$ data [0]的值。 MySQL,我猜您正在插入,将接受2012-12-31格式的日期,但不接受20121231格式。

所以考虑一下

$parsedDateYear = substr($data[0], 0, 4); 
$parsedDateMonth = substr($data[0], 4, 2); 
$parsedDateDay = substr($data[0], 6, 2); 

$finalDate = $parsedDateYear . "-" . $parsedDateMonth . "-" . $parsedDateDay; 

在INSERT语句中使用$ finalDate。