繁体   English   中英

验证和更改日期格式

[英]Validating and changing date format

我一直在阅读有关PHP如何解释日期的信息,尤其是在使用/- 因此,这让我有些困惑。 我正在读取CSV文件,并将其转换为数组。 我的数组csvData具有以下数据结构。

0 => array:3 [
    "ID" => "10338"
    "Date" => "19/08/2011"
    "Value" => "30"
]

因此,每个数组元素都包含一个IDDateValue 现在,我专注于Date元素,我可以像这样访问

foreach ($this->csvData as $rowIndex => $csvValues) {
    var_dump($csvValues[$this->dateCol]);
}

这是我不确定的部分。 我需要验证此日期,并确保其格式为dd/mm/yyyy 我不知道日期的原始格式是什么,它实际上可以是任何格式。 可能是美国格式,例如我什至看到过类似2010-04-10T00:00:00Z格式。

总体目标是尝试(也许)检测格式,然后将其转换为所需的格式。 此外,如果日期格式完全无法辨认,或者例如为空,则我想从数组中删除整个元素。 这部分应该是直截了当的。

我现在的主要问题是处理日期然后将其转换为正确格式的最佳方法是什么? 我尝试了strtotime但是当我输出值时,它返回false。

谢谢

DateTime类可以处理几乎任何日期格式。 它将适合您的目标。 DateTime类的构造函数采用$string ,date和$timezone 您不必担心时间只是约会,所以您应该没事。

    foreach ($this->csvData as $rowIndex => $csvValues) {

        //datetime class will parse that string into something php can understand
        $datetime = new DateTime($csvValues[$this->dateCol]);

        //you might have to look into the correct parameters here for the format you want
        $formatted_date = $datetime->format('d/m/Y')
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM