PHPExcel导入Excel文件,对Excel中日期单元格处理
/**
* 判断字符串是否是日期格式
* @param $date
* @param $format
* @return bool
*/
function is_date($date, $format = 'Y-m-d')
{
if (!$date || $date == '0000-00-00') return false;
$unix_time_1 = strtotime($date);
if (!is_numeric($unix_time_1)) return false; //非数字格式
$format_date = date($format, $unix_time_1);
$unix_time_2 = strtotime($format_date);
return ($unix_time_1 == $unix_time_2);
}
/**
* excel数据导入 日期格式化
* @param $date
* @return false|string
*/
function get_date_by_excel($date)
{
if (!$date || $date == '0000-00-00') return null;
$unix_time = \PHPExcel_Shared_Date::ExcelToPHP($date);
return ($unix_time < 0) ? date('Y-m-d', $unix_time) : date('Y-m-d', strtotime(gmdate('Y-m-d', $unix_time)));
}
/**
* 获取excel日期格式化结果
* @param $date string excel日期单元格字符串
* @param $default string $date未非日期时返回默认日期
* @return string
*/
function excel_date_format($date, $default = '')
{
if ($default == '') $default = date('Y-m-d');
if (is_date($date)) return $date;
return get_date_by_excel($date) ?: $default;
}