首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从PHP中的MYSQL日期变量减去7天?

从PHP中的MYSQL日期变量减去7天?
EN

Stack Overflow用户
提问于 2014-05-06 20:40:42
回答 2查看 2K关注 0票数 0

我有一个脚本,它计算从我的数据库中存储的开始日期已经过去了多少天。原理是,用户注册后有7天的时间完成注册,从管理的角度来看,这个脚本用来监控用户在哪里注册,以及他们注册后已经过了多少天。

因此,在本例中,我们给用户7天的宽限来完成。这类似于‘(7天中的天数已经过去了’)

然后,在7天之后,这应该会更改为给出过期天数。因此,如果用户有7天的时间来完成,他们需要8天,那么这将考虑到前7天的宽限期,然后有1天的逾期日期。

因此,例如,它应该回声'1天过期‘,而不是它目前正在做的事情,并说8天过期,我试图通过减去前7天来做到这一点。

有人告诉我这将会有所帮助,但是我在使用我的date变量时遇到了问题

代码语言:javascript
复制
$pre_date=date('Y-m-d', strtotime('-7 days'));

这是我的完整代码,有人能告诉我哪里出错了吗?

代码语言:javascript
复制
<?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
    ?>
EN

回答 2

Stack Overflow用户

发布于 2014-05-06 21:17:54

我想你在你的函数中有些错误

代码语言:javascript
复制
$pre_date=date('Y-m-d', strtotime('-7 days'));

例如,你可以试着使用这样的东西

代码语言:javascript
复制
$datetime = date("Y-m-d", strtotime( date( 'Y-m-d' )." +2 days"));

函数的结果如下:

代码语言:javascript
复制
2014-05-08

还有更多你需要的信息:

Click.

使用unixtime看起来是这样的。我们取两个日期之间的差值为秒,然后除以一天中的秒数

代码语言:javascript
复制
<?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);

你也可以通过以下命令从date中获取时间:

代码语言:javascript
复制
$unixtime = strtotime('22-09-2008');
票数 0
EN

Stack Overflow用户

发布于 2014-05-06 21:22:33

您忘记了将日期变量传递给strtotime,所以您总是将7天减去实际日期,结果是8。

尝试减去实际日期减去过期日期,以获得过去的天数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23495034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档