Abd*_*sit 22 php import-from-excel
我正在使用此代码阅读来自excel的日期,该格式为12/5/2012日/月/年.使用PHP EXCEL
PHPExcel_Style_NumberFormat::toFormattedString($value['A'],'YYYY-MM-DD' );
Run Code Online (Sandbox Code Playgroud)
它的工作就像将上述日期'12/5/2012'转换为'2012-12-05'
现在的问题是如果日期是让我们说18/5/2012或者你可以说如果我设置的日期大于12它会给我这个日期18/5/2012以这种格式18/5/2012格式化后
我也试过这个东西
$temp = strtotime( PHPExcel_Style_NumberFormat::toFormattedString($value['A'],'YYYY-MM-DD' );
$actualdate = date('Y-m-d',$temp) ;
Run Code Online (Sandbox Code Playgroud)
这也正在转换日期'12/5/2012'正确但在这种情况下18/5/2012它输出为1970-01-01
小智 71
请使用此公式从Excel日期更改为Unix日期,然后您可以使用"gmdate"来获取PHP中的实际日期:
UNIX_DATE = (EXCEL_DATE - 25569) * 86400
Run Code Online (Sandbox Code Playgroud)
要从Unix日期转换为Excel日期,请使用以下公式:
EXCEL_DATE = 25569 + (UNIX_DATE / 86400)
Run Code Online (Sandbox Code Playgroud)
将此公式放入变量后,您可以使用此示例在PHP中获取实际日期:
$UNIX_DATE = ($EXCEL_DATE - 25569) * 86400;
echo gmdate("d-m-Y H:i:s", $UNIX_DATE);
Run Code Online (Sandbox Code Playgroud)
cap*_*ica 23
使用PHPExcel时,您可以使用内置函数:
$excelDate = $cell->getValue(); // gives you a number like 44444, which is days since 1900
$stringDate = \PHPExcel_Style_NumberFormat::toFormattedString($excelDate, 'YYYY-MM-DD');
Run Code Online (Sandbox Code Playgroud)
您的变量似乎是一个字符串,或者需要美国格式的日期。
使用 'DateTime::createFromFormat' 将日期转换为实际的日期格式
$date = DateTime::createFromFormat('d/m/y', $value['A']);
echo $date->format('Y-m-d');
Run Code Online (Sandbox Code Playgroud)