我想用当前日期减去从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> </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>
答案 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';