我试图在用户退出时保存日期,以便他可以找到上次登录的日期,我正在使用此代码:
mysql_query("UPDATE `table` SET `lastLog` = now() WHERE user_id = '".$_SESSION['userID']."'");
将正确地给出上次登录的历史记录和时间,但是如果最后一次登录是今天,我希望代码今天显示该单词,如果最后一次登录是昨天,我希望代码显示昨天。并且在昨天之后我想仅显示常规日期,例如,如果我在三天前退出,那么值应该是这样的:8/7/2014。是否有一种简单的方法可以做到。
答案 0 :(得分:3)
$result = mysql_query("select lastLog from `table` WHERE user_id = '".$_SESSION['userID']."'");
while($row = mysql_fetch_array($result))
{
$last_login = $row['lastLog '];
}
if($last_login == date('d.m.Y'))
echo "its today";
if($last_login == date('d.m.Y',strtotime("-1 days")))
echo "it was yesterday";
else
echo 'it was '.$last_login;
答案 1 :(得分:2)
首先,您将要使用MYSQLI而不是mysql。 Mysql已经过时并且已弃用,MYSQLI是mysql php语法中更新,更稳定的子代。
其次,这应该指出你如何实现你所需要的正确方向。
$today = date('FORMAT OF DATE FROM QUERY');
$yesterday = date('FORMAT OF DATE FROM QUERY', strtotime("yesterday"));
if ($result === $today) {
$result = "today";
}
elseif ($result === $yesterday) {
$result = "yesterday";
}
答案 2 :(得分:1)
如果您想选择数据并显示'今天/昨天'或者'日期'取决于您可以在查询中使用case-when
select
col1,
col2,
.....
case
when date(lastLog) = curdate() then 'Today'
when date(lastLog) = curdate()-INTERVAL 1 day then 'Yesterday'
else lastLog
end as lastLog
from `table`