Получение года для динамического обновления и архивирования в PHP - PullRequest
0 голосов
/ 03 февраля 2019

Я пытаюсь создать меню, которое вставляет текущий год и динамически архивирует предыдущие годы.Я вложил нижеприведенное в <ul id="Year_Menu">

$current_year = date("Y");
$nxt_yr = date("Y", strtotime('+1 years'));


if ($current_year >= $nxt_yr) {

    $recent_past_year = $current_year -1;
    $years = array($current_year, $recent_past_year, "2018", "2017", "2016");

} else {

    $years = array($current_year, "2018", "2017", "2016");
}

        foreach ($years as $value) {

        echo "<li><a href='blog_posts.php?month=01&yr=$value;'>$value</a></li>";

        }
</ul>

Это работает для этого и следующего года, но в 2021 году джиг закончился :) Я могу продолжать создавать elseif заявления и перейти к 2030 году(или что-то еще), но говорить о неэффективно.Я не думаю, что это самый эффективный способ, но все еще учусь, я пытаюсь найти лучший способ сделать это, чтобы $recent_past_year заканчивал архивирование, а остальная часть кода просто продолжала двигаться вперед.,

Как я могу получить $recent_past_year в 2021 году (и далее) для динамического архивирования в массиве $years?... застрял

Ответы [ 2 ]

0 голосов
/ 03 февраля 2019

Вы можете использовать диапазон , чтобы получить годы, используя текущий год в качестве начала:

$current_year = date("Y");
$years = range(intval($current_year), 2016);
echo "<ul>";
foreach ($years as $value) {
    echo "<li><a href='blog_posts.php?month=01&yr=$value;'>$value</a></li>";
}
echo "</ul>";

Результат

  • 2019
  • 2018
  • 2017
  • 2016

Php demo

0 голосов
/ 03 февраля 2019

Использование функции PHP range.

Пример:

<?php

$thisYear = 2019;
$yearsFrom2016 = array_reverse(range(2016, $thisYear));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...