PHP通过MySQL计算剩余总天数


PHP Calculate total days remaining via MySQL

我的MySQL结构:

startdate
2012-01-01 04:00:00
enddate
2012-12-05 21:55:00

我的PHP

$startDate=row['startdate'];
$endDate=row['enddate]';
$days="";
$days=date("Y-m-d H:i:s");
$days=($startDate-$endDate);
echo $days;

试试这个简单的一行:

<?php
    echo round((strtotime($row['enddate'])-strtotime($row['startdate']))/86400);
?>

您可以在strtotime()的PHP手册中查看http://php.net/manual/en/function.strtotime.php.

  1. 为什么不使用DATE_DIFF,一个内置的MySQL函数呢
  2. 如果你想坚持使用PHP:首先在两个日期上使用strtotime()(转换为unix时间戳),然后减法,然后格式化

您可以使用strtotime()函数将开始日期和结束日期转换为秒,从结束日期中减去开始日期,然后使用一些数学运算将秒转换为天,最后使用floor()函数将天数取整。以下是我编写并测试过的一些代码。

<?php
$startDate = row['startdate'];
$endDate = row['enddate]';
$seconds_left = (strtotime($endDate) - strtotime($startDate));
$days_left = floor($seconds_left / 3600 / 24);
echo $days_left;
?>