Bonjour à tous,

Je poste ici en désespoir de cause.

J'ai 2 tableaux contenants des intervalles de dates (pour faire de la location saison)
Des intervalles de date ou le bien à louer est libre : $periodesLibres
Des intervalles de date ou le bien à louer est occupé : $periodesOccupee

Je dois "soustraire" les périodes occupées pour ne récupérer que les périodes libres (sous formes d'intervalle de date).
Tous ce que j'envisage me semble très compliqué. ex :
Tout transformer en liste de jours, faire un array_diff, reconvertir en intervalle de date (cette dernière tache me semble particulièrement complexe)...

Quelqu'un aurai une ou des approches à proposer pour traiter ce problème ?

Merci beaucoup à ceux qui pourraient m'aider car cela fait pas mal d'heure que je sèche

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
 
$periodesLibres = array();
 
$periodesLibres[0] = array(
    "dateDebut" => "2019-06-15",
    "dateFin" => "2019-06-29"
);
 
$periodesLibres[1] = array(
    "dateDebut" => "2019-06-15",
    "dateFin" => "2019-06-29"
);
 
$periodesLibres[2] = array(
    "dateDebut" => "2019-06-29",
    "dateFin" => "2019-07-13"
);
 
$periodesLibres[3] = array(
    "dateDebut" => "2019-07-13",
    "dateFin" => "2019-07-27"
);
 
$periodesLibres[4] = array(
    "dateDebut" => "2019-07-27",
    "dateFin" => "2019-08-03"
);
 
$periodesLibres[5] = array(
    "dateDebut" => "2019-08-03",
    "dateFin" => "2019-08-17"
);
 
$periodesLibres[6] = array(
    "dateDebut" => "2019-08-17",
    "dateFin" => "2019-08-31"
);
 
$periodesLibres[7] = array(
    "dateDebut" => "2019-08-31",
    "dateFin" => "2020-06-13"
);
 
 
 
$periodesOccupee = array();
 
$periodesOccupee[0] = array(
    "dateDebut" => "2018-12-29",
    "dateFin" => "2019-06-15"
);
 
$periodesOccupee[1] = array(
    "dateDebut" => "2019-09-14",
    "dateFin" => "2019-12-28"
);
 
$periodesOccupee[2] = array(
    "dateDebut" => "2019-06-22",
    "dateFin" => "2019-07-20"
);
 
$periodesOccupee[3] = array(
    "dateDebut" => "2019-08-10",
    "dateFin" => "2019-08-24"
);
 
$periodesOccupee[4] = array(
    "dateDebut" => "2019-12-28",
    "dateFin" => "2020-12-31"
);
 
$periodesOccupee[5] = array(
    "dateDebut" => "2019-07-20",
    "dateFin" => "2019-08-03"
);