使用php mktime()
我对使用php mktime(),php,javascript,mysql,sql,webserver,Php,Javascript,Mysql,Sql,Webserver,我对mktime()有问题。这是我记录用户登录时间和日期的代码,如果他是第一次登录,则$FirstTimeLogin将为true,否则$FirstTimeLogin将为false 现在的问题是,如果我第一次登录,我会收到一条消息: 今天开始1346716800故障1 但我实际上在寻找一条信息: 今天开始1346716800的成功 如果我第二次登录,就会收到此消息。我认为mktime()出了问题,也尝试了gmmktime()同样的问题 $chklogin = mysql_fetch_array(m
mktime()
有问题。这是我记录用户登录时间和日期的代码,如果他是第一次登录,则$FirstTimeLogin
将为true,否则$FirstTimeLogin
将为false
现在的问题是,如果我第一次登录,我会收到一条消息:
今天开始1346716800故障1
但我实际上在寻找一条信息:
今天开始1346716800的成功
如果我第二次登录,就会收到此消息。我认为mktime()
出了问题,也尝试了gmmktime()
同样的问题
$chklogin = mysql_fetch_array(mysql_query("SELECT Attempt_Time FROM admin_loginattempts WHERE User_Email='{$User_Email}' AND Successful='Y' ORDER BY Attempt_Time DESC LIMIT 1"));
if (!$chklogin) {
$FirstTimeLogin = true;
} else {
$lastAttempt = strtotime($chklogin["Attempt_Time"]);
$todaystart = gmmktime(0, 0, 0, $Cur_Month, $Cur_Day, $Cur_Year);
echo 'Last Attempt' . $lastAttempt . '<br>';
echo 'Today start' . $todaystart . '<br>';
if ($lastAttempt > $todaystart) {
$FirstTimeLogin = false;
echo 'success';
} else {
$FirstTimeLogin = true;
echo 'fail';
}
}
$chklogin=mysql_fetch_数组(mysql_查询(“从admin_login中选择尝试时间,其中用户电子邮件={$User_Email}”,并成功地通过尝试时间描述限制1排序”);
如果(!$chklogin){
$FirstTimeLogin=true;
}否则{
$lastTrupt=strottime($chklogin[“尝试时间]);
$todaystart=gmmktime(0,0,0,$Cur\u Month,$Cur\u Day,$Cur\u Year);
回显“最后一次尝试”。$LASTTRUMENT。“
”;
回显“今天开始”。$todaystart.
;
如果($lastTrupt>$todaystart){
$FirstTimeLogin=false;
呼应"成功",;
}否则{
$FirstTimeLogin=true;
回声“失败”;
}
}
实际上你的回声是错的
if ($lastAttempt > $todaystart) {
$FirstTimeLogin = false;
echo 'fail';
} else {
$FirstTimeLogin = true;
echo 'success';
}
这可能无助于回答您的问题,但您应该停止使用
mysql.*
函数。他们被弃用了。改为使用(从PHP5.1开始支持)或(从PHP4.1开始支持)。如果您不确定使用哪一个,我们没有足够的信息。$chklogin[“尝试时间”]
中有什么内容?$Cur\u Month
、$Cur\u Day
、$Cur\u Year
是如何初始化的?$Cur\u Month
、$Cur\u Day
和$Cur\u Year
的值是什么?看起来你从来没有设置过。还有,回显“最后一次尝试”。$lasttreant.
代码>?与其gmmktime
,为什么不干脆做strotime('today')
?我尝试了你的代码,但得到了相同的结果。。。最后一次尝试1346789046今天开始1346803200失败1…….但是如果我再次刷新我的页面,则显示最后一次尝试1346875463今天开始1346803200成功会很好。再次,如果我将日期更改为第二天。我在第一次登录时收到相同的消息…最后一次尝试1346789046今天开始1346803200失败1但您仅更改了echo语句这有区别吗?实际上,我使用echo语句只是为了显示并确保它将进入哪个循环…在我的程序中,我根本不使用echo…正如前面提到的,只是您的echo错误,时间戳显示为正确的我建议问题可能出在您使用$FirstTimeLogin时
if ($lastAttempt > $todaystart) {
$FirstTimeLogin = false;
echo 'fail';
} else {
$FirstTimeLogin = true;
echo 'success';
}