2012-02-23 50 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