#php
Вопрос:
У меня есть диапазон лет, я хочу знать первый и последний день или дату каждого года. потому что мне нужно рассчитать все действия, которые были выполнены за каждый год. вот мой код:
$years = range(2015, date('Y'));
foreach ($years as $year) {
echo "Number of activities" . $year . "<br/>";
}
Мне нужно знать стратегию и дату окончания или день всех лет.
Я могу получить первый и последний день, как показано ниже, но это не очень хорошее приветствие:
// for 2015
$firstDayOfYear = date('Y-m-d', strtotime('first day of january 2015'));
$lastDayOfYear = date('Y-m-d', strtotime('last day of december 2015'));
// for 2016
$firstDayOfYear = date('Y-m-d', strtotime('first day of january 2016'));
$lastDayOfYear = date('Y-m-d', strtotime('last day of december 2016'));
.
.
.
// until 2021
Когда количество лет увеличивается, вручную это невозможно. Потому что мне нужно отобразить их в виде диаграммы.
Кто-нибудь может мне помочь, пелеас ?
Комментарии:
1. Ну, во-первых, что мешает вам просто сделать часть года
strtotime('first day of january 2015')
динамичной? Вы ведь знаете, как работает объединение строк, не так ли?2. Во-вторых, вам действительно нужно «вычислять» это? Мои годы всегда начинаются первого января и заканчиваются 31 декабря — предполагая, что ваши, вероятно, тоже, вы могли бы просто добавить
-01-01
и-12-31
непосредственно к значению каждого года, которое вы там зацикливаете.3. это ставит меня в тупик, потому что это динамичное решение, мне нужно каждый год добавлять на один год больше динамики.
4. И я только что рассказал вам о двух разных способах придать этому динамику …
Ответ №1:
Зацени это
$start_year = '2015';
$last_year = date('Y');
for($start_year; $start_year <= $last_year; $start_year ){
echo $firstDayOfYear = date('Y-m-d', strtotime("first day of january {$start_year}"));
echo $lastDayOfYear = date('Y-m-d', strtotime("last day of december {$start_year}"));
}
Комментарии:
1. Большое вам спасибо @Mainul Hasan, это именно то, чего я хочу
2. Всегда пожалуйста!
3. @WahidAMINI, если это сработает для вас, можете отметить это как полезный ответ; кому-то это пойдет на пользу.
4. Да, сделано полезно @MainulHasan
Ответ №2:
Попробуйте это решение:
$years = range(2015, date('Y'));
$array = [];
foreach ($years as $year) {
echo "Number of activities " . $year . "<br/>";
$obj = (object)[];
$obj->$firstDayOfYear = date('Y-m-d', strtotime('first day of january ' . $year));
$obj->$lastDayOfYear = date('Y-m-d', strtotime('last day of december ' . $year));
$array[$year] = $obj;
}
var_dump($array);
Комментарии:
1. Большое спасибо, мистер Шахид