Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 跟踪用户登录的时间_Php_Html_Session_Cookies_Time - Fatal编程技术网

Php 跟踪用户登录的时间

Php 跟踪用户登录的时间,php,html,session,cookies,time,Php,Html,Session,Cookies,Time,我目前正试图找出如何计算用户登录我的网站的时间,然后显示时间 本质上,当用户登录时,我需要一种方法来记录他们登录的时间,然后在我网站的另一个页面上,我想向他们显示他们登录的时间。我将如何使用cookie或会话变量来执行此操作?我会将他们登录的时间存储为会话变量,如 $_SESSION['loginTime'] = new DateTime(date('y-m-d h:m:s')); 然后用diff计算差值 获取当前时间 $difference= $_SESSION['loginTime']-&

我目前正试图找出如何计算用户登录我的网站的时间,然后显示时间


本质上,当用户登录时,我需要一种方法来记录他们登录的时间,然后在我网站的另一个页面上,我想向他们显示他们登录的时间。我将如何使用cookie或会话变量来执行此操作?

我会将他们登录的时间存储为会话变量,如

$_SESSION['loginTime'] = new DateTime(date('y-m-d h:m:s'));
然后用
diff
计算差值

获取当前时间

$difference= $_SESSION['loginTime']->diff(new DateTime(date('y-m-d h:m:s')));
然后您可以使用这些方法输出时间

echo $difference->y; //return the difference in Year(s).
echo $difference->m; //return the difference in Month(s).
echo $difference->d; //return the difference in Day(s).
echo $difference->h; //return the difference in Hour(s).
echo $difference->i; //return the difference in Minute(s)
echo $difference->s; //return the difference in Second(s). 

我会将他们登录的时间存储为会话变量,如

$_SESSION['loginTime'] = new DateTime(date('y-m-d h:m:s'));
然后用
diff
计算差值

获取当前时间

$difference= $_SESSION['loginTime']->diff(new DateTime(date('y-m-d h:m:s')));
然后您可以使用这些方法输出时间

echo $difference->y; //return the difference in Year(s).
echo $difference->m; //return the difference in Month(s).
echo $difference->d; //return the difference in Day(s).
echo $difference->h; //return the difference in Hour(s).
echo $difference->i; //return the difference in Minute(s)
echo $difference->s; //return the difference in Second(s). 

假设您使用的是php,您将使用当前时间设置会话值,然后在另一个页面(显示时间的页面)上从该会话变量中检索该值。 登录时

session_start(); //immediately after <?php tag
$_SESSION ['timer'] = time();
别忘了

session_start(); 

在使用会话数据的每个页面上的php开始标记之后

假设您使用的是php,您将使用当前时间设置会话值,然后在另一个页面(显示时间的页面)上从该会话变量中检索该值。 登录时

session_start(); //immediately after <?php tag
$_SESSION ['timer'] = time();
别忘了

session_start(); 

在使用会话数据的每个页面上的php开始标记之后

好的,我试过了。所以在我登录的页面上,我有$_SESSION['loginTime']=newdatetime(date('y-m-dh:m:s');我希望总的登录时间出现在这个页面上,剩下的时间(减去几年、几个月和几天的回音)我一定是做错了什么,似乎没有正确计算时间。有时它上升30秒或更多,然后开始倒退。知道我哪里出错了吗?
DateTime(date('y-m-dh:I:s')
好的,我试过了。所以在我登录的页面上,我有$_SESSION['loginTime']=newdatetime(date('y-m-dh:m:s');我希望登录的总时间出现在页面上,剩下的时间我都有(减去几年、几个月和几天的回音)我一定是做错了什么,它似乎没有正确地计算时间。有时它会上升30秒或更多,然后开始倒退。你知道我哪里出错了吗?
DateTime(date('y-m-dh:I:s')
如果你需要天/月/年,你可以使用
echo(time()-$\u SESSION['timer'))
秒,
回音数字格式(time()-$会话['timer'])/60,2);
分钟,小数点后两位,
回音数字格式(time()-$会话['timer'])/3600,2)以小时为单位,小数点后2位,等等。除非您将会话到期时间设置为超过Windows的默认寿命,否则我看不出将其转换为datetime并使用该对象的意义-您的用户真的会让浏览器窗口打开数月吗?这就是我坚持使用时间戳的原因。如果需要天/月/年,可以使用
echo(time()-$\u SESSION['timer'])秒,
echo number_格式(time()-$_SESSION['timer'])/60,2)分钟,小数点后两位,
回音数字格式(time()-$会话['timer'])/3600,2)以小时为单位,小数点后2位,等等。除非您将会话到期时间设置为超过Windows的默认寿命,否则我看不出将其转换为datetime并使用该对象的意义-您的用户真的会让浏览器窗口打开数月吗?这就是我坚持使用时间戳的原因。