01.01.1970, когда даты в Symfony равны нулю - PullRequest
2 голосов
/ 11 октября 2011

Мне нужен мой showSuccess.php для отображения пустой строки, когда дни рождения нулевые, а не 01.01.1970.Я пробовал это с этим кодом, но он не работает:

<?php 
if (is_null($client_contact->getBirthday()) == TRUE) {
    echo ""; 
} else {
    echo $client_contact->getBirthday();
}
?>

Я работаю с MySQL и Symfony, извините за мой английский, я из Чили


Я изменяюфункция getBirthday () в классе.Решите это с помощью:

public function getBirthday() {
    if ($this->_get('birthday') == NULL) {
        return NULL;
    } else {
        return date("d-m-Y", strtotime($this->_get('birthday')));
    }
}

спасибо всем за помощь!: D

Ответы [ 4 ]

1 голос
/ 11 октября 2011

Можете ли вы изменить код класса за вашим $client_contact объектом?Если так, в этом классе проверьте, является ли значение дня рождения нулевым.Если это так, то верните пустую строку, иначе верните строку даты.В противном случае вы будете ограничены решением, которое предложил Тим.

1 голос
/ 11 октября 2011

Если вы var_dump($client_contact->getBirthday()) получаете NULL или вы всегда получаете дату? Если вы используете ORM (Symfony обычно использует Doctrine), то это может быть причиной вашей проблемы и конвертировать NULLS в 0 отметок времени ...

НЕ СЛЕДУЕТ делать это, потому что NULL! = '1970-01-01', и я согласен, если вы, но, если вы получите это в первую очередь, то посмотрите в руководстве по доктрине, почему он это делает. Это может быть проблема конфигурации модели.

1 голос
/ 11 октября 2011

Если он нулевой или равен 0, он преобразуется в эпоху (01.01.1970).

, поэтому вы можете использовать

if ($client_contact->getBirthday() == "01/01/1970") 
{     
  echo "";  
} else {     
  echo $client_contact->getBirthday();
}

или:

$bday = $client_contact->getBirthday();

echo ($bday != "01/01/1970" && !is_null($bday)) 
      ? $bday
      : "";

Но это не самый безопасный способ сделать это.вам нужно использовать strtotime

0 голосов
/ 11 октября 2011

Просто проверьте, равно ли оно 1 января 1970 года. К сожалению, любой день рождения, который выпадает на эту дату, также будет отфильтрован ... кажется, нет другого способа провести различие между этой датой и неустановленной.

<?php
if (($client_contact->getBirthday()) == "01/01/1970") {
    echo ""; 
} else {
    echo $client_contact->getBirthday();
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...