我想创建一个函数来检查日期,日期可以采用以下多种格式。
这里02 = 2020年的月份和20 =年等是日期
function validateDate($date, $format = 'Y-m-d')
{
$d = DateTime::createFromFormat($format, $date);
return $d && $d->format($format) == $date;
}
ob_end_clean();
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment;
filename=attendance_upload_csv'.time().'.csv');
header("Pragma: no-cache");
header("Expires: 0");
$file = fopen('php://output', 'w');
$fieldArr['field_name']['agent_user_name'] = 'Agent User Name';
$fieldArr['field_name']['date_of_violation'] = 'Date Of Violation';
fputcsv($file, $fieldArr['field_name']);
fclose($file);
问题是它不能验证所有日期,请告知。
预先感谢
答案 0 :(得分:1)
如果让用户将他们喜欢的任何内容放入传入的CSV文件中,那是个坏主意。由于数据输入过程不受您的直接控制,因此您需要设置一些规则和期望,然后由PHP在检查上传的文件时实施这些规则和期望。
发出指令,告诉用户他们必须以一种单一格式输入日期(您可以选择自己选择的日期,最好是模棱两可的格式,例如Y-m-d,因此毫无疑问,输入时数据将意味着什么)。如果他们不这样做,您将拒绝该文件。简单,问题解决。
您的代码无法猜测用户的意图或键入的意图。因此,解决方案是告诉他们确切的要求,然后拒绝任何不符合规范的要求。