【发布时间】:2016-03-01 05:01:15
【问题描述】:
在转换从 excel 表中检索到的日期时,YEAR 被插入为 20XX 而不是 19xx。
点击excel表格中的单元格,我们可以知道年份并且正确显示,但是在插入时,19xx被插入为20xx。
当我回显从 Excel 表中检索到的日期时-
echo date('Y-m-d', strtotime($data[3]));
exit(); //output 1970-01-01
echo $data[3];
exit(); //output 22/11/66
我尝试了以下方法-
1. $dob=date('Y-m-d', strtotime(str_replace('/', '.', $data[3])));
输出 - 有些年份正确,但有些 19xx 显示为 20xx
示例-2066-11-22 而不是 1966-11-22
2. $dob = implode('-', array_reverse(explode('/', $data[3])));
输出-YY-MM-DD
3. $dob=date('Y-m-d', strtotime(str_replace('/', '-', trim($data[3]))));
输出 - 1970-01-01
在模型中从excel中检索数据-
function upload(){
ini_set('auto_detect_line_endings',TRUE);
/* if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
readfile($_FILES['userfile']['tmp_name']);
}*/
if (($handle = fopen($_FILES['userfile']['tmp_name'], "r")) !== FALSE) {
$firstRow = true;
while (($data = fgetcsv($handle, 4096, ",",'"')) !== FALSE)
{
$num = count($data);
if($data[0]!=""){
//echo implode('-', array_reverse(explode('/', $data[3])));exit();
if($data[3]!="")
{
//$dob=date('Y-m-d', strtotime(str_replace('/', '.', $data[3])));
//$dob=date("Y-m-d", strtotime($data[3]));
//$dob = implode('-', array_reverse(explode('/', $data[3])));
//$dob=date("Y-m-d", strtotime($date));
$dob=date('Y-m-d', strtotime(str_replace('/', '-', trim($data[3]))));
}
$data1 = array(
'member_name' => $data[1],
'member_phone' => $data[2],
'member_dob' => $dob,
'member_outlet' => $data[4]
);
//echo "<pre/>";print_r($data) ;exit();
$this->db->insert('member_info', $data1);
$member_id = $this->db->insert_id();
}
}
//echo "<pre/>";print_r($data) ;exit();
fclose($handle);
}
ini_set('auto_detect_line_endings',FALSE);
}
}
有什么建议吗?
【问题讨论】:
标签: mysql excel codeigniter csv