2012-02-23 115 views
0

我想隱藏這是出現在下面的查詢 在列「開始日期」和「終止日期」的結果的時間框架(00:00:00)。隱藏字符導致

結果查詢顯示的是這樣的:

Department   City/University Start Date      End Date 
1. Building Science Miami   2011-12-28 00:00:00   2012-02-03 00:00:00 

的代碼看起來是這樣的:

$date_start = firstOfMonth(); 
$date_end = lastOfMonth(); 

$query = " SELECT Department, `Start Date`, `End Date` FROM facultytravel WHERE Country='".$country."' AND `Start Date`<='".$date_end."' AND `End Date`>='".$date_start."' ORDER BY `Start Date` ASC"; 
      $result = mysql_query($query); 

      $num = 1; 
      while($row = mysql_fetch_array($result)){     
       print "<tr>"; 
       print "<td>".$num.". ".$row['Department']."</td>"; 
       print "<td>".$row['City/University']."</td>"; 
       print "<td>".$row['Start Date']."</td>"; 
       print "<td>".$row['End Date']."</td>"; 
       print "</tr>"; 
       $num++; 
      } 
+1

只是一個觀察,但你不查詢城市/大學。這裏可能只是一個錯字,但要確保。它看起來好像你正在使用mysql DATETIME或TIMESTAMP數據類型。我個人更喜歡將自己的時間存儲在自本世紀以來的php本地秒數中,存儲在int數據類型列中。這有助於使用php的內置日期函數更輕鬆地進行操作。 – buck54321 2012-02-23 23:48:05

+0

我同意unixtime更容易使用! – Jay 2012-02-23 23:49:44

+0

你也可以在連接變量上做一些mysql_real_escape_string! – Jay 2012-02-23 23:54:45

回答

2

試試這個:

$query = " SELECT Department, CAST(`Start Date` AS DATE) as `Start Date`, CAST(`End Date` AS DATE) AS `End Date` FROM facultytravel WHERE Country='".$country."' AND `Start Date`<='".$date_end."' AND `End Date`>='".$date_start."' ORDER BY `Start Date` ASC"; 
+0

非常感謝!它以我想要的方式工作。 – Sam 2012-02-24 20:33:03

2

您需要格式化的日期,他們是兩種方法

使用SQL

SELECT DATE_FORMAT(`End Date`, '%Y-%M-%D'); 

或者

使用PHP

$time = strtotime($your_query['End Date']); 
$date = date("Y-m-d",$time); 

可以包含在PHP函數

+1

-1,這兩種格式都是錯誤的 – 2012-02-23 23:51:09

+0

用 - 代替。 @shiplu – Baba 2012-02-23 23:59:36

0

你可以使用爆炸(),你可能想使用時間元件一天!例如:

$start_datetime = explode(' ', $row['Start Date']); 
$end_datetime = explode(' ', $row['End Date']); 

然後訪問這些部件爲:

$row['Start Date'][0] 

將是:2011-12-28

$row['Start Date'][1] 

將是:00:00:00

$row['End Date'][0] 

將:2012-02-03

$row['End Date'][1] 

將是:00:00:00