2016-08-24 57 views
1

我取回我的約會像這樣在我的PHP查詢:如何在通過php檢索所有日期後檢查我的日期是否有特定年份?

DATE_FORMAT(items.r_date, '%M %D, %Y') as r_date 

然後顯示它是這樣,例如:

January 1st, 1934 

但是,如果今年是1111,我想讓日期說一些習慣。

如(我知道這是不是真正的代碼,只是想解釋什麼,我想做的事:

if ($row['r_date'] CONTAINS '*1111*') { $r_date = "my custom message"; } else $r_date = $row['r_date']; 

誰能幫我解決這個

謝謝你的時間?

+0

謝謝大家,當他們一切正常時,我該如何選擇答案?! – jotty

+1

不用理會日期,因爲你只需要處理一個字符串,並且不需要他們帶來的「權力」。對於2個答案,你會檢查整個字符串,你只能檢查最後4位數字。 – 2016-08-24 02:03:42

回答

1

字面上的執行你的僞代碼使用strpos

if (false !== strpos($row['r_date'], '1111')) { 
    $r_date = "my custom message"; 
} else { 
    $r_date = $row['r_date']; 
} 

然而,「只檢查最後四位數字」 answer by Dagon,或替代一個低於使用substr_compare,可能會產生較少的誤報:

if (0 === substr_compare(rtrim($row['r_date']), '1111')) 
    $r_date = "my custom message"; 
} else { 
    $r_date = $row['r_date']; 
} 

注意我在事件中使用trim在這裏你的約會假白 - 最後的空間。

+0

那麼我得到一半的積分呢? :-) – 2016-08-24 21:20:37

1

如果只想要通過其年度檢查,則:

$mydate = date('Y', strtotime($row['r_date'])) 
    if ($mydate == '1111' or $mydate == '1970') { 
    echo "something"; 
    }else{ 
    echo "else" 
    } 

注:
Y = 4位數的年份。
y = 2位數年份。
1970年是系統較低的年份,所以如果您的年份低於1970年,系統將默認爲1970年。

strtotime

1

您可以使用DateTime Class。 我沒有測試,但它應該是類似的東西,只是更改日期格式:

$date = DateTime::createFromFormat("m-d-Y", "02-01-1111"); 
if($date->format("Y")=="1111") 
    echo "your custom message"; 
2

我會用SUBSTR()中提取的最後4個字符是您今年

if (substr($row['r_date'], -4) != '1111') { 
    $r_date = $row['r_date']; } 
else { 
    $r_date = "my custom message"; 
} 
相關問題