繁体   English   中英

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";
}

如果要选择数据并根据值显示“今天/昨天”或“日期”,则可以使用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`

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM