2017-02-15 137 views
-1

如何使用PHP計算並顯示兩個日期之間的差異?我嘗試了一些方法,但我無法完美執行。任何人都可以幫我使用PHP計算兩個日期之間的差異?

S/N | Event   | Duration 
----- | ------------- | ------------ 
    01 | Trip- Bangkok | 2016-11-08 to 2016-11-20 
    02 | Trip-New York | 2016-12-01 to 2016-12-17 

,但我想,以顯示這樣

S/N | Event   | Duration days 
----- | ------------- | ------------ 
    01 | Trip- Bangkok | 12 days 
    02 | Trip-New York | 17 days 

我的數據庫

<table border="1" width="920px" align="center" cellpadding="3" class="mytable" cellspacing="0" > 
 
     <tr> 
 
      <th>S/N</th> 
 
      <th>Event</th> 
 
      <th>Duration</th> 
 
     </tr> 
 
\t \t 
 
\t \t  <?php 
 
\t \t $key=""; 
 
\t if(isset($_POST['searchtxt'])) 
 
\t \t $key=$_POST['searchtxt']; 
 
\t 
 
\t if($key !="") 
 
\t \t $sql_sel=mysql_query("SELECT * FROM trip_tbl NATURAL JOIN info_tbl WHERE info_name like '%$key%' or event like '%$key%'"); 
 
\t else 
 
     $sql_sel=mysql_query("SELECT * FROM info_tbl NATURAL JOIN trip_tbl"); 
 
\t \t 
 
    $i=0; 
 
    while($row=mysql_fetch_array($sql_sel)){ 
 
    $i++; 
 
    $color=($i%2==0)?"lightblue":"white"; 
 
    ?> 
 
     <tr bgcolor="<?php echo $color?>"> 
 
     <!-- <tr><br><?php echo $i;?></br></tr> --> 
 
\t   <td><p align ="center"><?php echo $i;?></p></td> 
 
      <td><font size="4px"><?php echo $row['event'];?></font></td> \t \t \t 
 
\t \t \t <td><font size="4px"><?php echo $row['departure']." to ".$row['arrived'];?></font></td> 
 
\t \t \t 
 
      </tr> 
 
    <?php \t 
 
    } 
 
    ?> 
 
\t <tr></tr>

: - 我用DATEDIFF但它不起作用

+0

表中的「Duration」字段的類型是什麼? – mith

+0

my db:id(int),event(varchar),departure(date),arrived(date) –

回答

1

如果你的PHP版本大於5.3,那麼你可以用這個來計算。

$date1 = new DateTime("2016-11-08"); 
$date2 = new DateTime("2016-11-20"); 

$diff = $date2->diff($date1)->format("%d"); 
echo $diff; 

$ diff將打印您的確切日期。

+0

nope它不是:(可能是我犯了錯誤,但我找不到它,反正非常感謝你的幫助 –

+0

我已經完成了這個代碼,你可以查看http://php.net/manual/en/class.datetime.php –

+0

也可以試試%d。 可能會對你有所幫助 –