我想设置一个禁令上诉时间,如果禁止用户,我将将来设置时间戳x小时或几天,并且只允许用户在存储的时间戳后登录。<<<<<<<<<<<<<<<<<</p>
我使用PHP设置服务器时间,因此它遵循本地时间,只是为了确保人们无法将其设备日期设置为以后的日期,然后禁令上诉时间。
我有1列检查是否ban = 1
,是否要检查另一列,称为ban_appeal
并将其与服务器的时间和日期进行比较。
//check if user is banned
if($row['ban'] == 1){
if(if($server_date_time < $row['ban_appeal'])){
$login_ok = false;
die('
<div class="error-msg">
<i class="fa fa-times-circle"></i>
This user has not activated their account yet.
</div>
');
}
}
//server time
date_default_timezone_set('Europe/Oslo');
$server_time = date('h:i a', time());
$server_date = strtotime(date("Y-m-d"));
我100%知道该$ server_date_time未设置,但这是因为我不确定如何将其设置以匹配时间戳(2016-11-27 02:33:51
)
使用内置的php dateTime对象以不同的格式处理时间:
//server time
date_default_timezone_set('Europe/Oslo');
$server_date_time = new DateTime();
$server_time = $server_date_time->format("h:i a");
$server_date = $server_date_time->format("Y-m-d");
//check if user is banned
if($row['ban'] == 1){
// i'm expecting that ban_appeal date format is 2016-11-27 02:33:51
$ban_date_time = DateTime::createFromFormat("Y-m-d H:i:s", $row['ban_appeal']);
if ($server_date_time < $ban_date_time) {
$login_ok = false;
die("User is banned until " . $ban_date_time->format("Y-m-d H:i:s"));
}
}