如何使用 PHP 更改 excel 单元格日期格式

How to change excel cell date fromat using PHP

我想从 csv 文件上传数据,我的数据库只接受 yyy-mm-dd 日期格式,但有时用户会以 dd/mm/yyy 日期格式输入数据,所以我尝试使用 Keboola\Csv

if($header[$c]=='date' && $row[$c]!='')
                {
                    $date_text=['--na','--N/'];
                    $sexe_text=str_replace($date_text,'N/A',$row[$c]);
                    if(in_array(array('--na','--N/'),$row))
                    {
                        $newRow[$c]=$sexe_text;
                    }
                    else
                    {

                        $date_array=explode('/', trim($row[$c]));
                        $date=trim($date_array[0]);
                        $month=trim($date_array[1]);
                        $year=trim($date_array[2]);
                        $date_time=$year.'-'.$month.'-'.$date;
                        $newRow[$c]=$date_time;

                    }

                }

但如果 dd/mm/yyy 中的单元格格式,它会再次恢复,所以现在我想将该单元格格式更改为日期 YYY-MM-DD 如何使用 PHP

可以直接使用date()函数进行转换。

$exceldate = trim($row[$c]);
$date = date('Y-m-d',strtotime($exceldate));

echo $date;
// 2019-08-09

PHP 已经预定义了 date() 来转换任何格式的日期

只需将您的代码替换为下面给出的代码

if($header[$c]=='date' && $row[$c]!='')
{
    $row[$c] = date('Y-m-d', strtotime($row[$c]));
}
else
{
    # if $row[$c] is null, do whatever you want.
}

PHP date() 接受任何格式的日期,无论是用正斜杠或连字符分隔。 要了解更多信息,您可以查看此文档 对于日期():https://www.php.net/manual/en/function.date.php 对于 strtotime() :https://www.php.net/manual/en/function.strtotime.php