当生日为空时,我需要我的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
答案 0 :(得分:1)
如果您var_dump($client_contact->getBirthday())
得到NULL,或者总是得到约会?如果您正在使用ORM(Symfony通常使用Doctrine),那么它可能是您的问题的原因并将NULLS转换为0时间戳......
它不应该这样做,因为NULL!='1970-01-01'并且我同意你,但是,如果你首先得到它,那么在学说手册中查看它为什么这样做。这可能是模型配置问题。
答案 1 :(得分:1)
如果它为null或0,则转换为Epoch(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
答案 2 :(得分:1)
您可以修改$client_contact
对象后面的类代码吗?如果是,则在该类中检查生日值是否为空。如果是,则返回空字符串,否则返回日期字符串。否则,您将受限于Tim提供的解决方案。
答案 3 :(得分:0)
检查它是否等于1970年1月1日。虽然不幸的是,那个日期的任何生日也会被过滤......似乎没有其他方法来区分该日期和未设置。
<?php
if (($client_contact->getBirthday()) == "01/01/1970") {
echo "";
} else {
echo $client_contact->getBirthday();
}
?>