13

whileループで、その日付が存在する場合にのみ日付を表示するにはどうすればよいですか?

例: 日付が0000-00-00の場合、何も表示されません。

現在、次のように日付を読んでいますが、01-01-1970いつ取得してい0000-00-00ます:

date('d-m-Y', strtotime($row['date']))
4

6 に答える 6

13

最初に、日付フィールドに日付が含まれているか、NULLが含まれているかを確認する必要があります。結果によると、あなたは日付を読むことができます。

while ($row = mysql_fetch_array($result)) {

    if (strtotime($row['date']) != '0000-00-00') {

        mydate = date('d-m-Y', strtotime($row['date']));

    } else {
        mydate = '';
    }
}
于 2012-05-05T12:45:43.607 に答える
8

これを試してください、私にとってはうまくいきます

while($row = mysql_fetch_array($result)){ 
 if(strtotime($row['date']) > 0){
   echo date('d-m-Y', strtotime($row['date']));
 }else{
   echo 'Date not valid or null';
 }
}
于 2015-07-15T08:22:26.027 に答える
6

これを行う簡単な方法は、次のように $row['date'] を整数として評価し、値をテストすることです。

if(!empty((int)$row['date']))
{
  echo "NOT empty";
}
else echo "EMPTY";

または短いバージョン:

!empty((int)$row['date']) ? echo "NOT empty" : echo "EMPTY";
于 2018-04-24T07:52:46.607 に答える
1

これを試して

foreach($row As $rows){
 if(strtotime($rows['date']) == ''){
    echo "N/A";
  }else{
echo date('d-m-Y', strtotime($rows['date']));
 }
echo "<br/>";

}

strtotime of "0000-00-00" AND "" is equal to "".

于 2012-05-05T13:35:46.777 に答える
1

あなたができることは、日付または日時の文字列からすべての、、、および値を置き換えて、それが空かどうかを確認する0こと-です:

if (empty(str_replace(array("0", "-", ":", " "), "", $mydate)))
{
  echo "empty date";
}
else
{
  echo "not empty date";
}
于 2015-07-30T08:08:02.943 に答える