2011-03-30 58 views
-1

在我的项目中,我从csv文件导入用户。在某些列有日期值 例如: - 出生日期,项目开始日期,项目死线日期等我知道日期列标题,但用户可以用不同的方式输入日期格式。我如何验证从csv获得的价值是否是有效的日期?如何在php中验证日期?

+7

请指出您已经尝试过的http://stackoverflow.com/search?q=validate+date+php的3177个结果中的哪一个,以及为什么您仍然需要提出您的问题。 – Gordon 2011-03-30 08:52:25

+1

在一个旁注中,你的问题不应该是如何验证日期,当他们** ** ** **的CSV文件,但如何确保他们没有得到**在** CSV格式的文件中的各种格式第一名。毕竟,你怎么能够可靠地说出这是哪一天:11/10/09?修复根本原因,而不是症状。 – Gordon 2011-03-30 09:02:18

回答

1

虽然不总是准确,但您可以尝试strtotime()。这不是一个完美的解决方案,但值得尝试。只是阅读笔记,因为它可以有不同的行为取决于你的日期格式。

0

php函数strtotime可以采用许多不同的日期格式并返回一个时间戳。如果您可以对有效的时间戳值进行深思熟虑的断言,则可以使用这些断言进行验证。 但它可能会出现副作用,如日月不匹配,所以这将是一个糟糕的验证。我建议你在输入文件上执行一个通用的日期模式。

0

我使用Zend_Date,因为构造函数会为我验证日期,但是当然,如​​果您不希望获得准确的格式,您将会收到@gordon在11/10/09类型中指出的实际问题的日期。这会生成一个有效的日期,但对于默认的语言环境/格式当然可能是错误的。