我正在开发游戏,我需要向玩家展示他受保护多少天。这就是我现在所拥有的:
if(user::loged()){
$protect = (60*60*24*8) - (time() - user::info['reg_date']);
$left = date("n",$protect);
if($left > 0) echo "You are protected for $left days!";
}
首先(测试)用户reg_date
是1394883070(15.3.2014 11:31)。所以它应该打印
You are protected for 7 days!
但我明白了
You are protected for 1 days!
有什么想法吗?
答案 0 :(得分:2)
你应该这样做:
$days_since_registration = (time() - user::info['reg_date'])/(24*3600)
date()仅对unix时间戳有用。时间戳的差异是以秒为单位的时间间隔,如果您将其用作1970年使用日期或类似情况的时间戳。
答案 1 :(得分:1)
您已将$ left设置为月数。
n是一个月的数字表示,没有前导零 - http://php.net/date
我愿意
if(user::loged()){
$protect = 691200 - (time() - user::info['reg_date']);
$left = ceil($protect / 86400);
if($left > 0) echo "You are protected for $left days!";
}
答案 2 :(得分:0)
<?php
$protect = (60*60*24*8) - (time() - user::info['reg_date']);
$left = ltrim(date("d",$protect), 0);
if($left > 0) echo "You are protected for $left days!";
// Prints "You are protected for 7 days!"
?>