0

我正在尝试转换正在导入到我的数据库中的表(csv)中的列中的 varchar 值。现在我事先没有任何关于 csv 文件中日期可能具有的格式的信息。我需要检查列中的所有值,如果有效,将这些列转换为 mysql 的 DATE 数据类型。问题是如果我使用 str_to_date 并且日期格式不同,则存储过程会引发错误并停止执行。我需要一种方法来忽略该错误,以便存储过程可以完成其迭代。

我还计划使用结果值来验证内容是否是有效日期?有没有更好的方法来做到这一点?请记住,我没有关于原始数据可能具有的日期格式的信息。

例如,日期可能是“2011 年 4 月 11 日”、“20110102”、“01-05-2011”等。我需要支持一些 4-5 种格式。谢谢。

4

1 回答 1

0

由于您事先不知道日期的格式,因此您可以使用 处理所有内容preg_match,例如:

$regex = '<matches for dates>';
if (preg_match($regex, $stringToCheck)) {
    str_to_date($stringToCheck);
} else {
}

我不知道您将如何处理未知案例而不为它们创建多个案例。PHP 怎么知道格式是 mm/dd/yy 还是 dd/mm/yy?

于 2012-04-12T19:49:09.240 回答