我正在读取一个带有fgetcsv()
的纯文本 CSV 文件并从其中一列中提取日期,如下所示:
$visit_date_title = 'SVDT';
while (($data = fgetcsv($this->handle, 2000, ",")) !== false) {
$this->row++;
//Set header columns
if ($this->row == 1) {
if(($visit_date_col = $this->get_column_number($data, $visit_date_title)) === false) break;
$minimum_cols = ($visit_date_col > $minimum_cols) ? $visit_date_col : $minimum_cols;
continue;
}
$this->visitDate = $data[$visit_date_col];
$this->logprintf(__LINE__, "NOTE : Received >" . $this->visitDate. "<");
}
我使用以下数据...
SVDT,NOTHING
12/11/2019,0
13/11/2019,0
14/11/2019,0
02/12/2019,0
为什么我会得到不同的日期格式,即使只是在阅读文本时?!我看到这个...
2019-12-12T14:57:48+00:00 : [line 376] : NOTE : Received >2019/12/11< <===
2019-12-12T14:57:48+00:00 : [line 376] : NOTE : Received >13/11/2019<
2019-12-12T14:57:48+00:00 : [line 376] : NOTE : Received >14/11/2019<
2019-12-12T14:57:48+00:00 : [line 376] : NOTE : Received >2019/02/12< <===
有没有办法避免这种干预并只获取数据?
您从文件中获得了实际/正确的日期CSV
所以没有问题。因此,在获取输出并为visitDate
变量分配日期值结束时,您可以格式化标准日期格式,如下所示。希望对您有所帮助
// change date format here
$dateVisited = str_replace("/", "-", $data[$visit_date_col]);
$this->visitDate = date('d/m/Y', strtotime($dateVisited));
$this->logprintf(__LINE__, "NOTE : Received >" . $this->visitDate. "<");