如何从mysql数据库中检索日期并用当前日期减去它?

时间:2015-02-28 04:48:34

标签: php mysql sql

我想用当前日期减去从mysql数据库中检索到的日期,并以天数获取输出。请帮助我。

我已经尝试过这个代码。但是它没有工作。我正在从表中检索日期并尝试从当前日期中减去它。我不知道。

 <?php
  mysql_connect("localhost","root","");
  mysql_select_db("lib_db");
   if(isset($_POST['submit']))
   {
  $user1=$_POST['user'];
  $curdate=date("d/m/Y");
 $query=mysql_query("select * from returnbooks where Userid='$user1'");
 while($row=mysql_fetch_array($query))
 {
 $getnow=$row[5];
 $change=strtotime($getnow);
 $mydate=date('d/m/Y',$change);
 $diff= abs(strtotime($mydate) - strtotime($curdate));
 echo floor($diff/(60*60*24));
 }
 }
 ?>
 </p>
 <p>&nbsp;</p>
 <form id="form1" name="form1" method="post" action="">
 <label for="user"></label>
 <input type="text" name="user" id="user" />

 <p>
 <input type="submit" name="submit" id="submit" value="Submit" />
 </form>
 </p>
 </body>
 </html>

3 个答案:

答案 0 :(得分:0)

这会有所帮助:

$date1 = 2015-02-25;
$date2 = 2015-02-28;
$number_days = (strtotime($date2) - strtotime($date1))  / (60 * 60 * 24);
echo $number_days;

您可以在$ date2变量中使用当前日期。

答案 1 :(得分:0)

比使用自己的算法更好的解决方案是使用执行此操作的内置函数。您可以在MySQL查询(SELECT DATEDIFF(MyDateColumn, CURDATE()) FROM MYTABLE)中正确执行此操作,或者在从MySQL获取日期并从中构建DateTime对象后使用PHP函数。 ($dateInterval = date_diff($dateFromSQL, new DateTime()); $daysApart = $dateInterval->days;

答案 2 :(得分:0)

另一种选择是扩展DateTime并将其用于您的优势。这是一个这样做的例子。从PHP.net上的DateTime类页面中提取

<?php

class DT extends DateTime
{
    public function getDiff($new = 'NOW')
    {
        if(!($new instanceOf DateTime))
            $new = new DateTime($new);

        return parent::diff($new);
    }

    public function get($format, $new = 'NOW')
    {
        return $this->getDiff($new)->format($format);
    }
}

$dt = new DT('2015-02-26 20:20:20');
$days = $dt->get('%a');

echo $days . ' day' . (($days == 0 || $days > 1) ? 's' : '') . ' ago';