在PHP中将日期数组从一种格式转换为另一种格式

时间:2018-06-30 21:22:56

标签: php date

我在数组中有一些日期,作为用户提供的数据集的一部分。假设他们是这样的:

['01/02/13', '12/10/13']

我需要将DD / MM / YYYY转换为MM / DD / YYYY。这是接收这些数据的JavaScript的要求。

一个用户可以上传DD / MM,一个用户可以上传MM / DD,所以我有一些代码可以检查任何日期是否为DD / MM并设置一个标志: / p>

$isDayMonthFormat = false;

// For every row of data in the dataRS...
foreach ($data as $row) {
    // We loop through each cell of data
    foreach ($row as $cell) {
        // Check if this cell of data is a date. This will return nothing if
        // it's not a date and therefore falsy
        if (strtotime($cell)) {
            $dateParsed = date_parse($cell);
            preg_match('/(\d{2})/', $cell, $dateRegex);
            $isDayMonthFormat = $dateRegex[1] == $dateParsed['day'];
            if ($isDayMonthFormat) {
                break;
            }
        }
    }
}

现在,如果一个用户仅执行MM / DD,则此标志从不触发。但是,当它跳闸时,我需要将用户上传的所有所有日期转换为MM / DD。

我遇到的问题是如何在解析时告诉PHP 01/02/13是2月1日,而不是1月2日,因此我可以正确格式化。如果我的$isDayMonthFormat标志为true,那么我希望01/02/13成为02/01/13。我也无法拆分/之类的东西,因为用户可以在-之间进行拆分,也可以在PHP中使用任何其他有效格式。

0 个答案:

没有答案