I Поместите дату в базу данных MySql в следующем формате: 2014-04-06 Теперь мне нужно распечатать обратный отсчет от NOW до 2014-04-06.

Код PHP:

$date = strtotime($row['end_date']);
$remaining = $date - time();
$days_remaining = floor($remaining / 86400);

echo $days_remaining;

Выход :

1

Этот вывод неверен. Истинный результат должен быть: 3 дня. Как это распечатать?

1
user27133 4 Апр 2014 в 01:25

3 ответа

Лучший ответ

Единственное, что я могу предложить, - это убедиться, что вы правильно установили настройки часового пояса. Что-то вроде,

date_default_timezone_set('America/Chicago');

$now = time();
$your_date = strtotime('2014-04-06');
$datediff =  $your_date - $now;
$days_remaining = floor($datediff/(60*60*24));
echo $days_remaining; // echoes 2

Я попробовал с этим и получил 1 на выходе:

date_default_timezone_set('Etc/GMT-10');

$now = time();
$your_date = strtotime('2014-04-06');
$datediff =  $your_date - $now;
$days_remaining = floor($datediff/(60*60*24));
echo $days_remaining; // echoes 1
2
graemeboy 4 Апр 2014 в 01:40

Все, что вам нужно сделать, это выполнить следующий оператор sql и прочитать его запись любым способом, который вы используете в своем приложении.

SELECT DATEDIFF('2014-04-06', CURDATE());
0
SaidbakR 4 Апр 2014 в 02:03

Это способ найти количество дней между двумя датами.

<?php

     $now = time(); // or your date as well
     $your_date = strtotime($row['end_date']);
     $datediff =  $your_date - $now;
     $days_remaining = floor($datediff/(60*60*24));
     echo $days_remaining;

?>
0
Companjo 4 Апр 2014 в 01:28
Нет никакой разницы
 – 
graemeboy
4 Апр 2014 в 01:32