0
我有日期是否是一个有效的日期(如1/1/2017
)这个
new DateTime(date($format = "Y-m-d", PHPExcel_Shared_Date::ExcelToPHP($val))).
一切工作正常,但如果我把一个日期如'30/2/2000'
在Excel中,从上面的函数返回'1900-01-30 00:00:00.000000'.
有没有办法告诉该功能不转换,如果它不是有效的日期?
对于离,new DateTime
返回FALSE
如果该值不是有效的日期,但ExcelToPHP
总是返回a date
,我不需要这个。
===编辑===
显然,如果Excel单元格的格式为日期,我收到PHP中的值是一个数字:从01-01-1900
经过的天数。对于无效的日期,它将以字符串形式返回值,而不是数字。
我觉得2个东西可以在这里工作:
- 检查,如果它是一个数字或字符串
- 转换成可读的PHP格式和验证结果
我选择第二种one:
$stringDate = \PHPExcel_Style_NumberFormat::toFormattedString($val, 'DD-MM-YYYY');
if (strtotime($stringDate) === false) {
// throw error or do something if is not a valid date
}
在Excel中,我有1/1/1980,在PHP中我收到29221.所以即使我有一个有效日期,strtotime也是假的。 –
No @ taysia09 strtotime返回'1/1/1980'的时间戳。结果是:'315532800' –
我刚试过。 $ val = 29221,所以它会是strtotime(29221)==> false –