Отображение текущего года, начинающегося 1 августа — PHP

#php #datetime #date

#php #дата и время #Дата

Вопрос:

Мне нужна функция PHP, которая отображает предыдущий год до 1 августа, после чего она должна отображать текущий год.

Например:

  • сегодня 12 мая 2011, так что это должно повторять «2010»
  • когда наступит 1 августа 2011 года, это должно повторять «2011»
  • … продолжайте повторять «2011» до 1 августа 2012
  • 1 августа 2012 года оно должно повторять «2012»
  • и т.д.

Пожалуйста, дайте мне знать, если у вас возникнут какие-либо вопросы. Заранее спасибо!

Комментарии:

1. Вопрос… что вы уже пробовали?

2. Согласен с @Mark Baker. На этот вопрос относительно легко ответить, проведя лишь небольшое исследование.

3. То есть в основном показывать финансовый год с датой начала 1 августа?

Ответ №1:

Поехали:

 $year = date('Y') - 1;
$month = date('n');

if($month >= 8) $year  ;

echo $year;
  

Демо:http://codepad.org/qOx1TO95

Комментарии:

1. Я думаю, что вы ошибаетесь в своем условии if.

Ответ №2:

 $august = strtotime('1 August');
if(time() < $august) {
  echo date('Y') - 1;
}else{
  echo date('Y');
}
  

Комментарии:

1. @Emil … означает ли это август каждого года? это выглядит неправильно

2. Это так. strtotime по умолчанию должно быть равно текущему году. Но я больше согласен с вашим решением — не думал прямо, когда выбрал strtotime вместо date 🙂

Ответ №3:

 function year($timestamp) {
    if(date('m', $timestamp) < 8) {
        return (date('Y', $timestamp) - 1);
    }
    return (date('Y', $timestamp));
}