PHP mysql今天,昨天和日期从数据库


php mysql today, yesterday and date from database

当用户注销时,我试图保存日期,以便他可以找到最后一次登录的日期,我使用以下代码:

 mysql_query("UPDATE `table` SET `lastLog` = now() WHERE user_id = '".$_SESSION['userID']."'"); 

将给出历史记录和最后一次正确登录的时间,但我希望代码显示单词今天,如果最后一次登录是今天和昨天,如果最后一次登录是昨天。在昨天之后,我想只显示常规日期,例如,如果我三天前登出,那么值应该是这样的:8/7/2014。有简单的方法吗?

    $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;

首先,您要使用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";
}

如果您想选择数据并根据值显示'Today/Yesterday'或'Date',您可以在查询中使用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`