我在我的php查询中检索我的日期:
DATE_FORMAT(items.r_date, '%M %D, %Y') as r_date
然后像这样显示它,例如:
January 1st, 1934
但是,如果年份是1111年,我想让日期说出一些自定义的内容。
比如(我知道这不是真正的代码,只是试图解释我想做什么:
if ($row['r_date'] CONTAINS '*1111*') { $r_date = "my custom message"; } else $r_date = $row['r_date'];
有人可以帮我解决这个问题吗?
感谢您的时间。
答案 0 :(得分:2)
我会使用substr()来提取作为你一年的最后4个字符
if (substr($row['r_date'], -4) != '1111') {
$r_date = $row['r_date']; }
else {
$r_date = "my custom message";
}
答案 1 :(得分:1)
伪代码的文字实现使用strpos
:
if (false !== strpos($row['r_date'], '1111')) {
$r_date = "my custom message";
} else {
$r_date = $row['r_date'];
}
然而,"只检查最后四位" answer by Dagon或下面使用substr_compare的替代版可能会产生较少的误报:
if (0 === substr_compare(rtrim($row['r_date']), '1111'))
$r_date = "my custom message";
} else {
$r_date = $row['r_date'];
}
注意我已经在这里使用了trim,因为你的日期最后会出现虚假的白色空间。
答案 2 :(得分:1)
如果您只想查看其年份,那么:
$mydate = date('Y', strtotime($row['r_date']))
if ($mydate == '1111' or $mydate == '1970') {
echo "something";
}else{
echo "else"
}
请注意:
Y = 4位数年份
y = 2位数年份
1970年是系统的较低年份,因此如果您的年份低于1970年,系统将默认为1970年。
答案 3 :(得分:1)
您可以使用DateTime Class。 我没有测试,但它应该是类似的,只需更改日期格式:
$date = DateTime::createFromFormat("m-d-Y", "02-01-1111");
if($date->format("Y")=="1111")
echo "your custom message";