簡體   English   中英

php和mysql中while循環中if語句中的日期格式顯示為1970年1月1日

[英]Date format within if statement in a while loop in php and mysql displays as 1st Jan, 1970

我的代碼從數據庫中獲取日期。 如果返回的日期為NULL,我希望將其顯示為00-00-0000或Nothing而不是1970年1月1日。這是我的代碼:

  <?php
  while($row=mysql_fetch_array($res))
  {
      $date_paid="";
      if ($date_paid == NULL) {
         $date_paid = $row['date_paid'];
      } else{
        $date_paid = date("jS M, Y", strtotime($row['date_paid']));
        } 
         echo "<tr><td>$date_paid</td></tr>";
  }
  ?> 

使用MySQL IFDATE_FORMAT

Select *,
IF(date_paid IS NULL, '00-00-0000', DATE_FORMAT(NOW(),'%D %b,  %Y'))
date_paid From table

或其他選項將此==更改為此,因為===是比較類型或值兩者

 if ($date_paid === NULL) {

簡單的解決方案...

while($row = mysql_fetch_array($res)){
    if(empty($row['date_paid']) || $row['date_paid']==='0000-00-00'){
        $row['date_paid'] = '00-00-0000';
    } else {
        $row['date_paid'] = date("jS M, Y", strtotime($row['date_paid']));
    }
    echo $row['date_paid'];
}

或內聯..

while($row = mysql_fetch_array($res)) {
    $row['date_paid'] = empty($row['date_paid']) ? '00-00-0000' : date("jS M, Y", strtotime($row['date_paid']));
    echo $row['date_paid'];
}

變得如此簡單:

$date_paid = $row['date_paid']
    ? date("jS M, Y", strtotime($row['date_paid']))
    : '00-00-0000';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM