我有这个
new DateTime(date($format = "Y-m-d", PHPExcel_Shared_Date::ExcelToPHP($val))).如果日期是有效日期(如1/1/2017),则一切正常,但如果我将类似于'30/2/2000'的日期放在Excel中,则上面的函数返回'1900-01-30 00:00:00.000000'.,如果它不是有效日期,是否有方法告诉该函数不进行转换?
对于ex,如果值不是有效日期,new DateTime返回FALSE,但是ExcelToPHP总是返回a date,我不需要它。
===编辑===
显然,如果Excel单元格被格式化为Date,我在PHP中接收的值是一个数字:从01-01-1900传递的天数。对于无效日期,它将返回值为字符串,而不是数字。
我认为有两样东西可以在这里发挥作用:
我选择第二个:
$stringDate = \PHPExcel_Style_NumberFormat::toFormattedString($val, 'DD-MM-YYYY');
if (strtotime($stringDate) === false) {
// throw error or do something if is not a valid date
}发布于 2017-08-08 06:34:44
您可以使用strtotime()方法检查日期,然后根据条件添加会话。
if(strtotime($val) === false)
{
//INVALID DATE
}
else
{
new DateTime(date($format = "Y-m-d", PHPExcel_Shared_Date::ExcelToPHP($val)));
}https://stackoverflow.com/questions/45560848
复制相似问题