有4个用户(银牌,金牌,白金,管理员) 银的最大范围是5,金是10,铂是15,管理员是20
这有什么问题?
$maxrange = ($data['range'] > 1483200000) ? 20 : ($data['range'] > 1451600000 && $data['range'] < 1483200000) ? 15 : ($data['range'] > 0 ? $web['gold_range'] : $web['silver_range']);
白银,黄金,白金工作正常,但对于admin $ maxrange变量持有值为15,而它应该持有20
语法有什么不对吗?有人可以帮忙吗...
另外... range实际上是数据库中显示日期的int(255)类型。 1483200001是31-12-2016 16:00。如何解码int到日期/时间?
答案 0 :(得分:0)
在开始应用代码之前,您应该了解代码的作用
if($data['range'] > 1483200000)
$maxrange = 20;
elseif(($data['range'] < 1483200000) && ($data['range'] > 1451600000))
$maxrange = 15;
else {
// If $web['gold_range'] or $web['silver_range'] are empty or not set,
// this portion will fail/produce an empty result
$maxrange = ($data['range'] > 0)? $web['gold_range'] : $web['silver_range'];
}
echo $maxrange;
顺便说一下,这不是一个答案,因为它会破坏你的代码。如果你得到的$maxrange
为15,它应该是20,那么可能会发生以下两种情况之一:
1)您已经设置了$maxrange
(在一个循环或其他内容中)并且您的输入不符合您的任何条件,因此它将保留最后一个设置值$maxrange
2)您的输入符合此(($data['range'] > 1451600000) && ($data['range'] < 1483200000))
条件
您的日期格式化为:
date('d-m-Y H:i','1483200000');
您可以通过检查php website上的格式选项来格式化日期。
答案 1 :(得分:0)
if(data['range']>1483200000)
$maxrange=20;
else{
if($data['range'] > 1451600000 && $data['range'] < 1483200000)
$maxrange=15;
else{
if($data['range'] > 0)
$maxrange=$web['gold_range'];
else
$maxrange=$web['silver_range'];
}
}
答案 2 :(得分:0)
将int val转换为日期
$intVal = '1483200001';
$dateTime = date('Y-m-d H:i:s', strtotime($intVal));