【问题标题】:PHP parse date column from excel sheet (CSV)PHP从excel表(CSV)中解析日期列
【发布时间】:2019-01-24 14:03:18
【问题描述】:

我创建了日期字段格式为 12-08-2018 的 CSV 文件。当我在 Excel 工作表中打开 csv 文件时,它会以 12/AUG/2018 格式显示并保存到文件中。

当我尝试解析时,它给了我错误:

<?php
     echo date('Y-m-d',strtotime('12/AUG/2018')); // 1969-12-31
?> 

那么,处理从 excel 表中解析出来的日期的最佳方法是什么。

【问题讨论】:

    标签: php excel csv date strtotime


    【解决方案1】:

    使用createFromFormat函数

    $date = DateTime::createFromFormat('d/M/Y', '12/AUG/2018');
    echo $date->format('Y-m-d'); // 2018-08-12
    

    【讨论】:

    • 感谢@splash58 的快速回复。如果我使用 DateTime::createFromFormat(),这意味着,我应该知道 excel 表需要哪些格式。因为来自 excel 工作表的数据可以采用不同的格式。那么,我应该处理所有案件吗?没有像自动格式检测和解析这样的解决方案吗?
    • 日期时间函数只能识别一些固定格式。在其他情况下,您应该尝试所有可能的格式
    • 我们如何检测传入的日期格式是什么?继续传递下去。
    • 如果您知道格式集,请在 datetime 失败时尝试它们
    • 例如日期时间失败后,我找到一种格式 12/AUG/2018,另一种格式我找到 12.AUG.2018,那么我将如何决定使用哪种格式?
    猜你喜欢
    • 2015-09-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 2017-02-22
    • 1970-01-01
    • 2021-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多