为什么我在PHP中比较两个日期不起作用?

时间:2011-12-12 05:27:03

标签: php date

我删除了所需的输出和一些样式,因为它们不会影响问题。我似乎无法正确比较两个日期,想法是如果currentDate大于deadlineDate,那么该路线将没有输出。我想要做的是阻止系统列出已经关闭的路线。我不明白为什么它如此困难,或者我错过了一些非常基本的东西。

<?php
$driveDays = mysql_query("SELECT date,routeid from StopDates where routeid='".$row['id']."' ORDER BY date ASC");

while($stopDates = mysql_fetch_array($driveDays)){
$orderDaysBefore = $row['lastOrderDate']; // How many days before the order must be placed.

// Change the date taken from the query to new format 
$originalDate=($stopDates['date']);
$newDate = date("d.m", strtotime($originalDate));

// Count the deadline date for the route.
$deadlineDate = strtotime ("-".$orderDaysBefore." days +12 hours", strtotime ($originalDate)) ;
$deadlineDate = Date('d.m.y G:i', $deadlineDate);


//Get current date which is then compared to the deadline date. Idea is that if currentDate is larger than deadlinedate there will be no input.
$currentDate=Date("d.m.y G:i"); 


//The line below doesnt seem to be working, i have tried mktime and time too but for some reason it just cant compare.                              
if (strtotime($currentDate) > strtotime($deadlineDate)){
// Output nothing
}
else { ?>

<p>Output stuff here</p>


<?php
}
} 
?>

问题是,对于某些行,它会隐藏路径,而对于某些行则不会。我试图用mktime和时间做这个,但我似乎无法弄清楚问题是什么。我看到的大多数指南告诉将日期转换为unix时间戳格式,如果我正确理解那正是我想在这里做的。我很确定我的错误很简单。

奇怪的是,对于某些日期来说,似乎工作就像deadlineDate已经超过一个月了。 deadlineDate以d.m.y G:i格式正确形成。

解决

我跳过了格式并比较了strtotimes 我补充说:

$currentDate2=strtotime("now");

$deadlineDate2 = strtotime ("-".$orderDaysBefore." days +12 hours", strtotime ($originalDate)) ;

然后我比较$currentDate2$deadlineDate2

1 个答案:

答案 0 :(得分:0)

略过格式并只比较strtotime()的结果。