【发布时间】:2019-04-25 08:29:03
【问题描述】:
$month = [
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
];
$month = $_POST['month'];
$year = $_POST['year'];
$day = $_POST['day'];
$dateOfDoc = "$year/$month/$day";
$date_now = date("Y/m/d");
if($dateOfDoc >= $date_now){
echo"yes u can upload";
} else {
echo "no u can't upload";
}
我正在尝试比较今天和用户输入的日期,如果用户输入的日期应该超过今天,我应该允许用户,但我总是得到错误的部分,即使用户输入明天的日期 例子)
today : 2019 04 25
user date : 2019 04 05 return false
today : 2019 04 25
user date : 2019 12 05 return true
我的代码有什么问题?
【问题讨论】:
-
您的 $dateOfDoc 变量只是字符串,而不是日期。将其转换为日期。
-
你为什么要生成任何月份名称数组,然后才覆盖你存储的变量?当您使用
var_dump进行调试输出时,$dateOfDoc 和 $date_now 的实际值是多少? -
或者,
strtotime,然后进行比较。 -
@ismakv 日期最后是一个字符串。如果日期是正确的字符串,一切都会好起来的。