我正在编写一个脚本,将从CSV文件中导入一些数据。在此过程中,我想检查一个变量是否为有效的日期字符串。
我已经看到了几种检查字符串是否为日期的方法,但大多数方法都需要你知道日期的格式。而我不知道日期的格式。
目前我正在使用strtotime(),但它容易失败。
有没有人能推荐更可靠的函数?
根据你们一些问题的编辑。
在我的情况下,要将一个变量作为“日期”传递,它需要特定于一天/月/年,因此只有“May”太模糊了,不能算作日期。基于这一点和保罗在下面提出的好点子,我们还可以测试字符串是否包含数字,例如:
我已经看到了几种检查字符串是否为日期的方法,但大多数方法都需要你知道日期的格式。而我不知道日期的格式。
目前我正在使用strtotime(),但它容易失败。
$field ="May";
if(strtotime($field)){
echo "This is a date";
}
在这个案例中,“May”是某人的名字,而不是一个日期。有没有人能推荐更可靠的函数?
根据你们一些问题的编辑。
在我的情况下,要将一个变量作为“日期”传递,它需要特定于一天/月/年,因此只有“May”太模糊了,不能算作日期。基于这一点和保罗在下面提出的好点子,我们还可以测试字符串是否包含数字,例如:
$field ="May";
if(strtotime($field) && 1 === preg_match('~[0-9]~', $field)){
echo "This is a date";
}else{
echo "Nope not a date";
}
这似乎满足了我的直接需求,但有人能否发现任何问题或者提出改进建议?