首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果PHPExcel_Shared_Date::ExcelToPHP( $val )是无效日期,则返回默认日期

如果PHPExcel_Shared_Date::ExcelToPHP( $val )是无效日期,则返回默认日期
EN

Stack Overflow用户
提问于 2017-08-08 06:30:38
回答 1查看 1.4K关注 0票数 0

我有这个

代码语言:javascript
复制
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传递的天数。对于无效日期,它将返回值为字符串,而不是数字。

我认为有两样东西可以在这里发挥作用:

  1. 检查它是数字还是字符串
  2. 转换为可读PHP格式并验证结果

我选择第二个:

代码语言:javascript
复制
$stringDate = \PHPExcel_Style_NumberFormat::toFormattedString($val, 'DD-MM-YYYY');

if (strtotime($stringDate) === false) {
  // throw error or do something if is not a valid date
}
EN

回答 1

Stack Overflow用户

发布于 2017-08-08 06:34:44

您可以使用strtotime()方法检查日期,然后根据条件添加会话。

代码语言:javascript
复制
if(strtotime($val) === false)
{
  //INVALID DATE
}
else
{
  new DateTime(date($format = "Y-m-d", PHPExcel_Shared_Date::ExcelToPHP($val)));  
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45560848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档