【发布时间】:2012-07-04 08:42:54
【问题描述】:
我已经创建了注册页面,当用户单击提交按钮时,激活链接会发送到他的电子邮件,并且相应的时间戳会存储在数据库中。如果用户单击该激活链接,我必须检查该链接是在 24 小时之前还是之后单击的。 我的代码:-
function confirmEmail($activation_code){
$this->load->database();
$this->load->helper('date');
echo "activation link will be checked and accordingly flag will be set.";
$activation_sent_timestamp=$this->db->query("SELECT activation_timestamp FROM tbl_user_registration WHERE email_verification_code='$activation_code'");
foreach($activation_sent_timestamp->result() as $res){
$activation_time_from_db=$res->activation_timestamp;
}
echo $activation_time_from_db."\n\r";
$now = time();
$human = unix_to_human($now);
echo $human;
$difference = ($human-$activation_time_from_db);
if($difference < 24) {
echo "correct"
}
else echo "Link expired";
}
我正在使用 codeigniter。我该怎么做,这段代码没有显示任何错误,但我不知道这是计算 24 小时的正确方法,我正在检查但没有得到任何东西。请检查代码。
已解决........ :)
【问题讨论】:
-
建议:我总是尝试将 php 日期和 mysql 日期分开,因为有时会出现不匹配。如果您使用 NOW() 插入数据,则将 DATE_ADD 和 DATE_SUB 与 INTERVAL 1 DAY 一起使用。如果字段是日期时间,则使用 UNIX_TIMESTAMP() 对其进行转换。如果您使用 'time()' 插入,则可以使用 strtotime('+1 day')。
标签: php html database codeigniter timestamp