【问题标题】:PHP force date to be text in CSVPHP 强制日期为 CSV 中的文本
【发布时间】:2014-12-02 04:41:07
【问题描述】:

我正在创建一个 CSV 导出文件,并且有一个在 Excel 或 Numbers 中打开时会不断格式化的日期字符串。如何强制数据为文本。

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";

【问题讨论】:

  • 那么不要使用 csv。使用 PHPExcel 并构建一个适当的 excel 文件,您可以在其中指定单元格格式。
  • 是的,您似乎无法将上述解决方案应用于 PHP。从您给出的示例中确实如此:它实际上表明根本没有应用任何内容。但是,要在 stackoverflow 上提问,您需要问一个编程问题。无法应用您在本网站上找到的一些代码示例而不分享您的编程问题的其他详细信息(例如,您在理解中遗漏的内容)很可能不符合编程问题的条件。所以它充其量还不清楚,但它本身甚至不适合编程问答网站。尝试通过编辑来改进您的问题。
  • 也可能自我复制:stackoverflow.com/q/26238178/367456
  • 如果您不想使用 PHPExcel,请使用 Libre Office 打开 CSV 文件并将其另存为 XLSX。 Microsoft Excel 拒绝以有用的方式处理 CSV 数据(如果您购买了他们的一份支持合同,他们可能会帮助您,但不能这么说)。

标签: php excel datetime csv export-to-csv


【解决方案1】:

您是否尝试在日期值前面加上单引号?在 excel 中,这会将其视为该单元格的字符串值(而不是日期)。

================================================ ==

这是一个电子表格问题,而不是 PHP 编码问题。如果您希望电子表格以不同的方式查看它,请告诉电子表格程序以不同的方式查看/格式化它。

有正确的数据,问题不在于数据;它与查看数据的程序有关。因此,如前所述,您可以将一些其他格式值编码到 xls (xlsx) 文件中,以实用地强制执行该特定电子表格程序/格式,但 csv 不允许您选择格式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-01
    • 2016-07-25
    • 1970-01-01
    • 2023-02-15
    • 2016-09-17
    相关资源
    最近更新 更多