【发布时间】:2021-07-02 09:33:46
【问题描述】:
我正在导出 csv 文件,我的列之一是日期,但某些行的日期格式发生了变化,我不明白为什么
应该是d-m-Y H:i:s,但给d/m/Y H:i:s
这是我的代码
$headers = array(
"Content-type" => "text/csv",
"Content-Disposition" => "attachment; filename=Consignment Income Invoice.csv",
"Pragma" => "no-cache",
"Cache-Control" => "must-revalidate, post-check=0, pre-check=0",
"Expires" => "0"
);
$callback = function () use ($consignments, $sheet_header_columns, $db_columns) {
$output = fopen("php://output", "wb");
fputcsv($output, $sheet_header_columns);
foreach ($consignments as $consignment) {
$sheet_row = [];
foreach ($db_columns as $column) {
if ($column == 'customers') {
$column_value = $consignment->customers->name;
} elseif ($column == 'delivery_runs') {
$column_value = $consignment->delivery_runs->name ?? '';
} elseif ($column == 'pickup_address') {
$column_value = $consignment->pickup_addresses->full_address ?? '';
} elseif ($column == 'delivery_address') {
$column_value = $consignment->delivery_addresses->full_address ?? '';
} elseif ($column == 'income') {
$column_value = $consignment->charges->sum('income') ?? '';
} elseif ($column == 'driver_name') {
$column_value = $consignment->run_sheets->drivers->name ?? '';
} elseif ($column == 'date_delivered') {
$column_value = setDateTimeFormat($consignment->date_delivered);
} elseif ($column == 'created_at') {
$column_value = setDateTimeFormat($consignment->created_at);
} elseif ($column == 'delivery_date') {
$column_value = setDateFormat($consignment->delivery_date);
} else {
$column_value = $consignment->$column;
}
array_push($sheet_row,$column_value);
}
fputcsv($output, $sheet_row); // here you can change delimiter/enclosure
}
fclose($output);
};
return response()->stream($callback, 200, $headers);
setDateTimeFormat()函数
function setDateTimeFormat($date)
{
if (!empty($date)) {
$date = date(getDateTimeFormat(), strtotime($date));
$date = str_replace('-','/',$date);
if ($date == "01-01-1970 10:00:00") {
return "";
}
return $date;
} else {
return "";
}
}
我在导出之前设置了日期时间格式。但它仍然在改变格式不知道为什么。
【问题讨论】:
标签: php laravel laravel-5 export-to-excel