如果日期大于。。在php中无法正常工作

如果日期大于。。在php中无法正常工作,php,Php,可能重复: 我的日期格式为:dd-mm-yyy 现在根据php,2011年6月28日比2011年11月1日大 $today = date('d-m-Y', time()); if("28-06-2011" > $today ){ echo "This returns true"; } 我怎样才能使它正常工作?你不能这样比较日期。它们是两根弦。PHP将尝试将它们解释为数字(取前两位数字,然后由于-)而失败),并对它们进行比较。事实证明这是不正确的YYYY-MM-DD类型字符串

可能重复:

我的日期格式为:dd-mm-yyy

现在根据php,2011年6月28日比2011年11月1日大

$today = date('d-m-Y', time());

if("28-06-2011" > $today ){
     echo "This returns true";
}

我怎样才能使它正常工作?

你不能这样比较日期。它们是两根弦。PHP将尝试将它们解释为数字(取前两位数字,然后由于
-
)而失败),并对它们进行比较。事实证明这是不正确的
YYYY-MM-DD
类型字符串确实可以使用
进行比较,并且
您不能将日期与字符串进行比较。
创建另一个日期项目,类似于today变量,固定日期为2011年6月28日,然后比较两个对象。
$datetocompare=日期(“d-m-Y”,mktime(0,0,0,28,062011))

如果($datetocompare>$today){} 这样就行了


来源:

如果这样做,实际上是比较字符串,而不是日期。要正确比较日期,您需要将日期值/字符串转换为
时间戳
,您可以使用
strotime
函数来实现这一点

以下是一个链接,提供更多信息:

我的日期格式为:dd-mm-yyy

这就是你错的地方。

你不应该在这家公司里约会。将它们放在yyyy-mm-dd中,您就可以毫无问题地比较它们。

如果该日期的格式为
yyy-mm-dd
,您可以按照您描述的方式进行操作。@Tim不,即使是这样-它也只会使用yyy部分进行比较comparison@Pekka你肯定吗?在我试过的测试中,这是真的。@Tim!画得我很惊讶。我总是假设字符串在比较之前首先自动转换为int。
$date1 = new DateTime('2000-01-01');
$date2 = new DateTime('2001-01-01');

if ($date1 > $date2)... // this works
if(strtotime("28-06-2011") > time()) {
}