Установка PHP-переменные 2 лет и 2 лет в будущее


Следующий код получает лет (даты), 1 и 2 года назад (например 2017 - 2016) и 1 и 2 лет в будущее (например 2019 - 2020). Сейчас PHP-это не мой опыт, поэтому я хотел бы получить некоторую помощь с уборкой.

Тут другой подход надо использовать при этом?

//Filter jaren
$year = date("Y");
$yearBack = $year;
$yearBack--;
$yearDoubleBack = $yearBack;
$yearDoubleBack--;
$yearAhead = $year;
$yearAhead++;
$YearDoubleAhead = $yearAhead;
$YearDoubleAhead++;


314
3
задан 30 января 2018 в 11:01 Источник Поделиться
Комментарии
3 ответа

Только три-четыре строки код работ для получения необходимого результата:-

<?php

$date = date("Y"); //current year

$date_range = range($date-2, $date+2);//get year range

//print_r($date_range); //print year range

echo implode(',',$date_range);//comma seperated date range

Выход:- https://eval.in/944817

2
ответ дан 30 января 2018 в 11:01 Источник Поделиться

Используйте тип datetime класса из PHP.

<?php

$current = new DateTime(date('Y'));

$current->modify("-2 year");
echo $current->format("Y");
//outputs 2016
$current->modify("+4 year");
echo $current->format("Y");
//outputs 2020

3
ответ дан 30 января 2018 в 11:01 Источник Поделиться

Вы можете просто складывать и вычитать годы:

<?php

$year = date("Y");
$yearDoubleBack = date("Y", strtotime($year . " - 2 year"));
$YearDoubleAhead = date("Y", strtotime($year . " + 2 year"));

echo '$yearDoubleBack => ' . $yearDoubleBack;
echo PHP_EOL;
echo '$YearDoubleAhead => ' . $YearDoubleAhead;
echo PHP_EOL;

$years = range($yearDoubleBack, $YearDoubleAhead);
print_r($years);

Проверить : https://3v4l.org/DLmql

1
ответ дан 30 января 2018 в 11:01 Источник Поделиться