Php 未来与当前日期比较
我有一个简短的代码,比较两个似乎不起作用的日期,我想看看是否有人可以解释为什么Php 未来与当前日期比较,php,Php,我有一个简短的代码,比较两个似乎不起作用的日期,我想看看是否有人可以解释为什么 date_default_timezone_set("America/New_York"); $today = date("m-d-y"); $dueDate = date("05-08-21"); if ($dueDate > $today) { echo "<p> Success!"; } else { echo "<p> Failure!
date_default_timezone_set("America/New_York");
$today = date("m-d-y");
$dueDate = date("05-08-21");
if ($dueDate > $today) {
echo "<p> Success!";
}
else {
echo "<p> Failure!";
}
date\u default\u timezone\u set(“美国/纽约”);
$today=日期(“m-d-y”);
$dueDate=日期(“05-08-21”);
如果($dueDate>$today){
回声“成功!”;
}
否则{
回声“失败!”;
}
当我运行这段代码时,我不断收到“失败!”的消息,即使5/08/21即将到来。有两个原因导致代码无法工作
date_default_timezone_set("America/New_York");
$today = date("Y-m-d");
$dueDate = date("Y-m-d", strtotime("05-08-21"));
if ($dueDate > $today) {
echo "<p> Success!";
}
else {
echo "<p> Failure!";
}
date\u default\u timezone\u set(“美国/纽约”);
$today=日期(“Y-m-d”);
$dueDate=日期(“Y-m-d”,标准时间(“05-08-21”);
如果($dueDate>$today){
回声“成功!”;
}
否则{
回声“失败!”;
}
注意:我使用的日期是您格式化为“05-08-21”的日期,这将导致日期为8月5日。如果您的意思是“5月8日”,那么将字符串改为使用斜杠(“05/08/21”)而不是破折号
相关文件:
您的方法不起作用的原因有几个:
日期(“05-08-21”)代码>不是该函数的有效使用。要返回此日期的格式化日期,请运行以下操作:
日期('m-d-y',标准时间('05-08-21')代码>
- 为了比较日期,需要使用类将它们声明为日期对象,或者使用
实现这一点的现代方法是像这样使用DateTime
类
// Define the format
$format = "m-d-y";
// Create the date objects
$today = new \DateTime();
$dueDate = \DateTime::createFromFormat($format, "05-08-21");
// Then you can run your condition...
if ($dueDate > $today) {
echo "<p>Success!</p>";
} else {
echo "<p>Failure!</p>";
}
//定义格式
$format=“m-d-y”;
//创建日期对象
$today=new\DateTime();
$dueDate=\DateTime::createFromFormat($format,“05-08-21”);
//然后你可以运行你的状态。。。
如果($dueDate>$today){
回声“成功!”;
}否则{
回声“故障!”;
}
日期()的可能重复项
返回一个字符串,您确实无法比较这些字符串