我讀了一個 csv 文件,如下所示: 391;WETSUITS;07/07/2020 12:47:36;0021000001463; 392;WETSUITS;07/07/2020 12:47:49;0021000007845; ....我用這種格式檢索一個日期:echo $data[2] = 07/07/2020 12:47:36我想要兩個變量:$date = 07-07-2020 or 2020-07-07$time = 1247我嘗試使用 str_replace 作為第一部分,但收到“注意:未定義偏移:2”作為錯誤消息,我該如何更改它? <?php$csv = 'C:/wamp64/www/BI/BI1_20200707_1520_28044.csv';if (($handle = fopen("$csv", "r")) !== FALSE) { while (($data = fgetcsv($handle, 9000000, ";")) !== FALSE){ // echo $data[2]; //07/07/2020 12:47:36 $new = str_replace('/', '_', $data[2]); echo $date = substr($new,0,20)."\n";; }}?>
1 回答

慕桂英3389331
TA貢獻2036條經驗 獲得超8個贊
此通知可能是由于文件末尾有空行而出現的。因此,只需檢查$data數組是否為空即可。
while (($data = fgetcsv($handle, 9000000, ";")) !== false) {
// empty line will be transformed to [null]
if (empty(array_filter($data))) {
continue;
}
// other operations
}
建議:更好的是使用 DateTime 進行日期操作。日期格式參考: https: //www.php.net/manual/en/function.date
$date = \DateTime::createFromFormat('d/m/Y H:i:s', $data[2]);
if ($date === false) {
// handle date parse error
}
$date1 = $date->format('Y-m-d'); // 2020-07-07
$date2 = $date->format('Hi'); // 1247
- 1 回答
- 0 關注
- 149 瀏覽
添加回答
舉報
0/150
提交
取消