Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么赢了';PHP strottime是否可以使用此格式的日期mdy?_Php_Date - Fatal编程技术网

为什么赢了';PHP strottime是否可以使用此格式的日期mdy?

为什么赢了';PHP strottime是否可以使用此格式的日期mdy?,php,date,Php,Date,我在PHP5.2.17中验证日期时遇到问题。我需要用户能够输入没有任何标点符号的六位数日期,因此2014年1月15日将是011514。(这是由于输入设备的限制和用户的方便) 已测试,但不起作用: $testDate = "011514"; $myDate = date('mdy', strtotime($testDate)); echo $myDate; 我希望myDate与测试日期相同,但事实并非如此,它会打印出今天的日期042314(2014年4月23日)!PHP不喜欢在我的原始字符

我在PHP5.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”

我如何让strotime()理解我想在不使用日期格式的情况下检查“mdy”格式的日期?

额外信息:
PHP版本为5.2.17,因此无法使用“从”格式创建的日期。

回答您唯一的问题

我如何才能让strotime()理解我想检查'mdy'格式的日期,而不使用date\u create\u from\u格式


要获得strotime()了解您的格式,您需要下载php源代码,对其进行修补,使其支持这种奇怪的格式,并使用您的自定义版本。

strotime()可以理解的内容是有限的。它不可能什么都懂。这就是为什么他们告诉我们它的功能,而作为开发人员,我们需要以尊重这一点的方式编写代码

您只需在代码中插入斜杠,就可以了

$testDate = "011514";
$date = sprintf('%s/%s/%s',
    substr($testDate, 0, 2),
    substr($testDate, 2, 2),
    substr($testDate, 4, 2) 
);
$myDate   = date('mdy', strtotime($date));
echo $myDate; 

为什么要将
mdy
格式转换为
mdy
格式?这只是一个测试示例,$testDate实际上是用户输入。所以它可能是“388374”,也可能是“0101415”,这就是为什么我需要测试他们的输入并检查它是否是日期。永远不要相信用户的输入。这让我做得很好。在未来,我希望升级到一个更新的PHP版本,这样我就不必对日期进行此类操作。斯普林特对我来说也是个新手,非常适合手头的工作。