我有一个脚本,用于计算自我的数据库中存储的开始日期以来已过去的天数。 该理论是,用户注册并有7天完成注册,从管理方面来看,此脚本用于监控用户所处的位置以及自注册以来已过去的天数。
所以在这个例子中,我们给用户7天的宽限度来完成。这样的回声就像#(7个中的天数已过去'
然后在7天后,这应该改为给出逾期的天数。因此,如果用户有7天的时间完成并且他们需要8天,那么这将考虑前7天的宽限期,然后过期日期为1天。
因此,例如,它应该反映出过期的1天,而不是它目前正在做的事情,并说8天过期,我试图通过减少前7天来做到这一点。
我被告知这会有所帮助但是我无法使用我的日期变量
$pre_date=date('Y-m-d', strtotime('-7 days'));
继续我的强制代码,请有人告诉我我哪里出错了
<?php include 'config.php';
$data = mysql_query("SELECT *,
TIMESTAMPDIFF(DAY, date, CURDATE()) AS expire_date
FROM supplier_session
ORDER BY expire_date ASC")
or die(mysql_error());
echo "<table class=\"table\" style=\"width:995px; font-family: 'Lucida Grande', Tahoma, Verdana, Arial, sans-serif;
font-size:11px;\" >
<tr>
<td style=\"width:100px;\">ID:</td><td>Company Name:</td><td>Company Reg No:</td><td>Application Started:</td><td style=\"width:200px;\">Application Duration:</td><td style=\"width:100px;\">Date:</td><td>Status:</td></tr>";
while($row = mysql_fetch_array( $data )) {
$days = $row['expire_date'];
$when = $days*0;
$str = $row['expire_date'];
$str2 = substr($str, 0); // "quick brown fox jumps over the lazy dog."
$pre_date=date('Y-m-d', strtotime('-7 days'));
if ($when <= 31){
echo "<tr><td style=\"width:100px;\"><p>".$row['id'] . "</p></td>";
echo "<td style=\"width:150px;\"><p>".$row['company_name'] . "</p></td>";
echo "<td style=\"width:150px;\"><p>".$row['company_reg_number'] . "</p></td>";
echo "<td>"; echo date('d/m/Y',strtotime($row['date'])); echo "</td>";
if ($days >= 8) {
echo "<td style=\"width:200px;\"><p>{$pre_date} days overdue</td>";
}
elseif ($when <= 7){
echo "<td style=\"width:200px;\"><p>{$str2} of 7 days past</td>";
}
}
echo "<tr>";
}
echo "</table>"; //Close the table in HTML
?>
答案 0 :(得分:0)
我认为你的功能有些错误
$pre_date=date('Y-m-d', strtotime('-7 days'));
例如,你可以试着像那样使用somth
$datetime = date("Y-m-d", strtotime( date( 'Y-m-d' )." +2 days"));
功能结果如下:
2014-05-08
还有更多信息需要:
unixtime看起来像那样。我们在第二个日期之间取两个日期之间的差异,然后将它除以白天的秒数
<?php
date_default_timezone_set('UTC');
$now_time = time();
$date_before = time()-(7*24*60*60);// 7 days; 24 hours; 60 mins; 60secs
echo($now_time);
echo('<br>');
echo($date_before);
echo('<br>');
$difference = $now_time - $date_before;
$result = intval($difference/(24*60*60)); //seconds in day
echo($difference);
echo('<br>');
echo($result);
你也可以从约会时间开始:
$unixtime = strtotime('22-09-2008');
答案 1 :(得分:0)
您忘记将日期变量传递给strtotime,因此您总是将7天减去实际日期并因此得到8。
尝试减去实际日期减去过期日期,以获得过去的天数。