php - 读取 CSV 文件我的日期格式不断变化?
问题描述
我正在阅读一个纯文本 CSV 文件,fgetcsv()
并从其中一列中提取日期,如下所示:
$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. "<");
推荐阅读
- javascript - TypeError:无法读取 React 组件中未定义的属性“fetchAll”
- react-native - 了解 react-native-reanimated 执行
- ios - SizeToFit() 不能与 \n 一起正常工作?
- c++ - C++ 是否可以编排基类相对于其派生类的偏移量?
- python-3.x - 使用输入从python运行exe文件并保存输出
- java - Map-Reduce
pair Key 是一个时间间隔 - python - 在 pandas DataFrame 中使用多个条件会产生 ValueError
- repository - TYPO3 Persistence Repository 在视图渲染中抛出错误
- vim-plugin - 如何使用 vim-plug 安装 cscope_maps?
- asp.net-core-signalr - SignalR Core:.Net 应用程序中收到的协商响应无效