我正在创建一个CSV导出,并且有一个日期字符串,当在Excel或数字中打开时,它的格式会一直保持不变。如何才能强制数据为文本。
Stop Excel from automatically converting certain text values to dates
我似乎不能在PHP中应用上面的解决方案。
if(strlen($date) == 10){
// 12-24-1983
$date = explode('-',$date);
$m = $date[0];
$d = $date[1];
$Y = $date[2];
$date = $Y.'-'.$d.'-'.$m.' 00:00:00';
}
else {
// 2014-08-07 21:04:19
$date = explode(' ',$date);
$datePiece = $date[0];
$timePiece = $date[1];
$datePiece = explode('-',$datePiece);
$Y = $datePiece[0];
$m = $datePiece[1];
$d = $datePiece[2];
$date = $Y.'-'.$d.'-'.$m.' '.$timePiece;
}
return "$date";发布于 2014-10-08 01:17:00
你有没有试过在日期值前面加一个单引号?在excel中,这会将其视为该单元格的字符串值(而不是日期)。
=================================================
这是一个电子表格问题,而不是PHP编码问题。如果您希望电子表格以不同的方式查看它,请告诉电子表格程序以不同的方式查看/格式化它。
正确的数据存在,问题不在于数据,而在于查看数据的程序。如前所述,您可以将一些其他格式值编码到xls (xlsx)文件中,以便实际地强制应用于特定的电子表格程序/格式,但是csv不允许您选择格式。
https://stackoverflow.com/questions/26241345
复制相似问题