奇数日期(“Y-m-d”)结果

时间:2012-09-13 17:35:26

标签: php date

我对php date()函数有一些奇怪的结果。基本上我从一个字符串格式的Mysql数据库中获取日期,分成三个元素。这将是日,月,年(例如2012年9月15日)我最终比较两个日期,看它是否已过期。但问题是只有某些日期允许代码工作,而有些日期根本不起作用(或允许if语句有效工作)下面是我的代码,任何帮助都会很棒。

 $today = date("d-m-Y");

$expire = date("d-m-Y",strtotime($this->getData('date_day')."-".
$this->getData('date_month')."-".$this->getData('date_year'))) ;

 if ($expire < $today)
{
    echo 'expired';
}
else
{
    echo 'Not expired';
}

我确定它很简单,但出于某种原因我无法解决它。

2 个答案:

答案 0 :(得分:5)

您需要比较Unix时间戳。

$today = time();

$expire = strtotime($this->getData('date_day')."-".
$this->getData('date_month')."-".$this->getData('date_year')) ;

if ($expire > $today)
{
    echo 'expired';
}
else
{
    echo 'Not expired';
}

答案 1 :(得分:0)

看起来strtotime预计是美国日期格式;您需要交换月份和日期来生成有效日期:

$today = date("d-m-Y");

$expire = date("d-m-Y",strtotime($this->getData('date_month')."-".
$this->getData('date_day')."-".$this->getData('date_year'))) ;

另一方面,请参阅Stephen305的答案 - 这是解决问题的更好方法。