【发布时间】:2014-04-24 10:18:54
【问题描述】:
我在 PHP 5.2.17 中验证日期时遇到问题。我需要用户能够输入没有任何标点符号的六位数日期,因此 2014 年 1 月 15 日将是 011514。(这是由于输入设备限制和用户方便)。
经过测试,这不起作用:
$testDate = "011514";
$myDate = date('mdy', strtotime($testDate));
echo $myDate;
我希望 myDate 与测试日期相同,但事实并非如此,它会打印出今天的日期 042314(2014 年 4 月 23 日)! PHP 不喜欢我的原始字符串中没有标点符号。如果我更改 $testDate = "01-15-14" 那么 PHP 会吐出正确的字符串 "011514"。
如何让 strtotime() 了解我想在不使用 date_create_from_format 的情况下检查“mdy”格式的日期?
额外信息: PHP 版本为 5.2.17,因此无法使用 date_create_from_format。
【问题讨论】:
-
为什么要将
mdy格式转换为mdy格式? -
这只是一个测试示例,$testDate 实际上是用户输入。所以它可能是“388374”,也可能是“0101415”,这就是为什么我需要测试他们的输入并检查它是否是一个日期。永远不要相信用户输入。