while
ループで、その日付が存在する場合にのみ日付を表示するにはどうすればよいですか?
例: 日付が0000-00-00
の場合、何も表示されません。
現在、次のように日付を読んでいますが、01-01-1970
いつ取得してい0000-00-00
ます:
date('d-m-Y', strtotime($row['date']))
最初に、日付フィールドに日付が含まれているか、NULLが含まれているかを確認する必要があります。結果によると、あなたは日付を読むことができます。
while ($row = mysql_fetch_array($result)) {
if (strtotime($row['date']) != '0000-00-00') {
mydate = date('d-m-Y', strtotime($row['date']));
} else {
mydate = '';
}
}
これを試してください、私にとってはうまくいきます
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';
}
}
これを行う簡単な方法は、次のように $row['date'] を整数として評価し、値をテストすることです。
if(!empty((int)$row['date']))
{
echo "NOT empty";
}
else echo "EMPTY";
または短いバージョン:
!empty((int)$row['date']) ? echo "NOT empty" : echo "EMPTY";
これを試して
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 "".
あなたができることは、日付または日時の文字列からすべての、、、および値を置き換えて、それが空かどうかを確認する0
こと-
です:
。
if (empty(str_replace(array("0", "-", ":", " "), "", $mydate)))
{
echo "empty date";
}
else
{
echo "not empty date";
}