2013-06-05 71 views
0

這是我的弱點...編寫if語句來獲取兩個特定日期之間的數據。我不知道它是什麼,但它總是讓我困惑。PHP在日期間抓取數據時遇到了問題

if($date > $enddate || $date < $startdate){ 

日期從數據庫中來來往往的開始日期是2013年5月6日和結束日期是2013年6月5日,我試圖抓住其間的這兩個日期的數據。

任何幫助將是非常感謝。

+2

假設'$ startdate'在'$ enddate'之前,你的邏輯是相反的。你應該檢查日期__結束日期和_ _開始日期。 –

+0

如果按照「寫」的方式對「邏輯」條件進行排序,它總是有幫助的。所以「start dognose

回答

4

它不應該是:

if($date < $enddate && $date > $startdate){ 

如果日期出來的格式爲「2013年5月6日」的數據庫,你也可以做這樣的事情,所以你實際上可以恰當地比較:

//...get $date from the database... 
$date = strtotime($date); 
$startDate = strtotime("2013-05-06"); 
$endDate = strtotime("2013-06-05"); 
if($date < $enddate && $date > $startdate){ 
    //some code 
} 

strtotime將您的日期字符串轉換爲數字的UNIX時間戳,使其更容易比較。

+1

它應該是一個AND –

+0

正確!我編輯了答案。 – user1578653

+0

@ØHankyPankyØ - 你真的不應該用這種方式比較它們,但它實際上在Y-m-d格式時會起作用 - 字符串順序與日期排序相匹配。 –

0

假設變量是日期,什麼user1578653寫的是正確的

if($date < $enddate && $date > $startdate){ } 

http://php.net/manual/en/datetime.diff.php

這一切都是假設,他們是日期,這將有助於如果您向我們展示了我們是什麼樣的變量與...合作。

0

請問if (strtotime($date) > strtotime($start_date) && strtotime($date) < strtotime($end_date))有用嗎?