2013-12-09 100 views
1

我想比較2日期與通常的代碼。在有問題的PHP比較日期

$date1 = date("d/m/Y",strtotime($row['ad_date'])); 

$date = $_GET['date']; 

if($date1 > strtotime($date)){ 
    echo ("Yes"); 
}else{ 
    echo ("No"); 
} 

row['ad_date']具有 「Y-M-d」 格式和$_GET['date']有 「d-M-Y」 的格式。

PHP打印YES只有當$_GET['date']MONTH個交易日走低的$row['date']

當我呼應兩者格式的所有更改後,該格式似乎是相同的:
13/12/2013 (date1) - 01/12/2013(date)

$_GET['date']是從ui.js jQuery的日曆和$row['date']從MySQL。

任何想法的傢伙?

回答

4

您正在做直線字符串比較,您應該使用strtotime將日期字符串解析爲紀元時間,以便您可以將它們與數字比較進行比較。

$date1 = strtotime($row['ad_date']); 
$date = strtotime($_GET['date']); 

echo "{$row['ad_date']} -> {$date1}<br>"; 
echo "{$_GET['date']} -> {$date}<br>"; 

if($date1 > $date){ 
    echo ("Yes"); 
}else{ 
    echo ("No"); 
} 
+0

正如你可以看到我使用的strtotime中的代碼1號線至$行[「日期」]和if條件約會時間。 – GeorgeGeorgitsis

+0

date()返回字符串.. http://php.net/manual/en/function.date.php strtotime返回int – Hardy

+2

但是您的$ date1仍然是一個字符串,因爲您在strtotime()之後做了date() –

2

這是一個更容易使用DateTime對象,因爲它們具有可比性:

$date1 = new DateTime($row['ad_date']); 
$date2 = DateTime::CreateFromFormat("d-m-Y", $_GET['date']); 
if($date1 > $date2){ 
    echo ("Yes"); 
}else{ 
    echo ("No"); 
}