2012-02-17 38 views
0

這裏是視圖的表,我想裝點行之一isoverdeadline等於「是」餐桌裝飾無法工作

<tr <?php 
     if(strcmp($isoverdeadline,'yes')) 
     { 
      echo ' style:"background-color:#CC3300"'; 
     } 
     ?> 
     > 
     <td width="250" <?php 
      if(strcmp($isoverdeadline,'yes')) 
      { 
     echo ' style:"background-color:#fff"'; 
      } 
      ?> 
     ><?php echo $projectname; ?> </td> 
     <td width="70"<?php 
      if(strcmp($isoverdeadline,'yes')) 
      { 
     echo ' style:"background-color:#CC3300"'; 
      } 
      ?> 
     ><?php echo $ticketid; ?></td> 
     <td <?php 
     if(strcmp($isoverdeadline,'yes')) 
     { 
      echo ' style:"background-color:#fff"'; 
     } 
     ?> 
     ><?php echo $subject; ?></td> 
     <td<?php 
      if(strcmp($isoverdeadline,'yes')) 
      { 
     echo ' style:"background-color:#fff"'; 
      } 
     ?> 
     ><?php echo $startdate; ?></td> 
     <td<?php 
     if(strcmp($isoverdeadline,'yes')) 
     { 
      echo ' style:"background-color:#fff"'; 
     } 
     ?>><?php echo $deadline; ?></td> 
     </tr> 

這裏是發生了。控制器代碼的一部分,其中project_info數組被設置爲在視圖中被看到。

if($this->is_proj_due($project_info['deadline'])<0) //deadline is over 
{ 
$project_info['isoverdeadline']='yes'; 
} 
else 
{ 
$project_info['isoverdeadline']='no'; 
} 
return $project_info; 


function is_proj_due($due_date) 
    { 
     $now=new DateTime('now'); 
     $dnow=$now->format('Y-m-d'); 
     $due=$due_date->format('Y-m-d'); 
     $interval =(strtotime($dnow)-strtotime($due)); 
    print_r($interval); 
    return $interval; 
    } 

不順心的事,因爲我看不到任何變化;我想這是導致它的時間比較。我很感激任何幫助。

回答

0

[strcmp]返回< 0如果str1小於STR2; > 0如果str1大於str2,則爲,如果它們相等則爲0。

http://php.net/strcmp

如果字符串相等,0返回。 0等於false。所以這個條件與你所期望的完全相反。

對於是/否的值,請勿使用"yes"/"no"。使用布爾真值truefalse

$project_info['isOverDeadline'] = true; 

if ($project_info['isOverDeadline']) ... 
+0

謝謝,我不知道爲什麼我沒有使用布爾值,而是我是stuuupeed。非常好的地方! – 2012-02-17 02:12:27

+0

Hel-llo,我改正了你的告訴我,但是現在我的頁面變成了空白 – 2012-02-17 02:24:16

+0

語法錯誤?嘗試檢查您的錯誤日誌。 – deceze 2012-02-17 02:56:30