PHP Рассчитать общее количество дней, оставшихся через MySQL - PullRequest
1 голос
/ 06 января 2012

Моя структура 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;

Ответы [ 3 ]

4 голосов
/ 06 января 2012

Попробуйте этот простой однострочный:

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

Вы можете посмотреть в руководстве по PHP для strtotime() на http://php.net/manual/en/function.strtotime.php.

1 голос
/ 06 января 2012
  1. Почему бы не использовать DATE_DIFF, встроенную функцию MySQL?
  2. Если вы хотите придерживаться PHP: сначала используйте strtotime () для обеих дат (конвертируйте в метку времени unix), затем вычтите, а затем отформатируйте.
0 голосов
/ 06 января 2012

Вы можете использовать функцию 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;
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...