У вас должна быть переменная с количеством секунд до вашей даты. Мой пример функции ниже.
<code><?php
function timeRemaining($total) {
if (!$total || $total <= 0) return false;
// define your ranges here (desc order), the keys will go to output.
$elements = array(
"years" => 60*60*24*30*12,
"months" => 60*60*24*30,
"weeks" => 60*60*24*7,
"days" => 60*60*24,
"hours" => 60*60,
"minutes" => 60,
"seconds" => 1
);
// compute in a cycle to compress the code
$return = array();
foreach ($elements as $name => $dur) {
$return[$name] = floor($total / $dur);
$total -= $return[$name] * $dur;
}
// return data in the array form
return $return;
}
// how much till new year?
echo "<pre>",
print_r(timeRemaining(mktime(0,0,0,1,1,2012)-time()));
echo "
";
?>
Просто скопируйте и вставьте любой php-файл для тестирования, например, он возвращает массив с годами, месяцами и т. Д., Оставшийся до нового года. Вы можете адаптировать вывод для своих нужд, передавая возвращаемое значение другой функции, генерирующей строки, просто не забудьте проверить значение по false
, что будет означать, что время прошло.
Обратите внимание, что месяцы используют упрощенный 30-дневный диапазон, а год здесь установлен на 360 дней, а не 365,25, как в реальном мире.
Надеюсь, это будет полезно.