Следующий Август в будущем с углеродом - PullRequest
0 голосов
/ 20 ноября 2018

Есть ли более красивый способ получить полную дату следующего 1 августа:

$year = date('Y') + 1;
if (date('j') >= 1 && date('j') <= 8) {
    $year = date('Y');
}
$nextAugust = '01-08-' . $year;
$nextAugust = Carbon::createFromFormat('d-m-Y', $nextAugust);

Желательно с Carbon PHP

Ответы [ 3 ]

0 голосов
/ 29 ноября 2018

Это будет сделано:

$nextAugust = Carbon::createFromFormat('d-m-Y', '01-08-' . (date('Y') + intval(date('m') / 8)));

Уточнение:

Вместо условия if текущий месяц можно разделить на 8 ипреобразовать полученное значение в целое число, используя intval(date('m') / 8).Это даст вам либо 0, либо 1, и будет добавлено к текущему году.Например, если вы находитесь в марте (т. Е. m - это 3), вы получите 3/8 = 0.Следовательно, следующий август будет в том же году, потому что 2018 + 0 будет 2018.С другой стороны, если вы находитесь в октябре (т. Е. m равно 10), вы получите 10/8 = 1.Следовательно, следующий август будет в следующем году, потому что 2018 + 1 будет 2019.Вот как вы просто реализуете это:

Надеюсь, это поможет.

0 голосов
/ 29 ноября 2018

В следующем коде найдите следующий август с углеродным объектом.

$nextAugust = Carbon::parse('first day of August' . (date('n') > 8 ? ' next year' : ''));

Надеюсь, мой ответ поможет вашей проблеме.

0 голосов
/ 29 ноября 2018

Для меня я сделаю:

$date = '01-08-';
$year_now = Carbon::now()->format('Y');
$date = $date.$year_now;
$carbon_date = Carbon::createFromFormat('d-m-Y', $date);

Дайте мне знать, если это не работает.

...