Existe-t-il un moyen plus joli d'obtenir la date complète du prochain 1er août:

$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);

De préférence avec Carbon PHP

0
user1469734 20 nov. 2018 à 15:29

3 réponses

Meilleure réponse

Le code suivant trouve le prochain août avec un objet carbone.

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

J'espère que ma réponse pourra vous aider à résoudre votre problème.

1
FGDeveloper 29 nov. 2018 à 14:39

Cela le fera:

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

Clarification:

Au lieu de la condition if, vous pouvez diviser le mois en cours par 8 et convertir la valeur résultante en un entier en utilisant intval(date('m') / 8). Cela vous donnera 0 ou 1, et sera ajouté à l'année en cours. Par exemple, si vous êtes en mars (c'est-à-dire que m est 3), vous obtenez 3/8 = 0. Par conséquent, le mois d'août prochain sera la même année, car 2018 + 0 sera 2018. D'un autre côté, si vous êtes en octobre (c'est-à-dire que m est 10), vous obtenez 10/8 = 1. Par conséquent, le mois d'août prochain sera l'année prochaine car 2018 + 1 sera 2019. Voici comment vous l'implémentez simplement:

J'espère que cela aide.

0
Taher Ahmed Ghaleb 29 nov. 2018 à 16:49

Pour moi, je vais faire:

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

Faites-moi savoir si cela ne fonctionne pas.

-2
Chris 29 nov. 2018 à 05:17