Bonjour,

Pour une application, j'ai besoin d'effectuer des opérations relativement simples sur des dates (soustraction/addiction de mois, de jours, ou d'année).

Voici la méthode la plus simple que j'ai trouvée:

Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
$date= "2010-07-20";
echo 'ancienne date : '.$date.'<br />';
$date= date("Y-m-d", strtotime($date." + 3 days + 2 months + 1 year"));
echo 'nouvelle date : '.$date;

Qui semble fonctionner vue la sortie :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
ancienne date : 2010-07-20
nouvelle date : 2011-09-23
Dans le doute, j'ai testé la gestion des années bissextiles :
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
// Année bissextile
$date = "2012-02-28";
echo 'ancienne date (année bissextile) : '.$date.'<br />';
$date = date("Y-m-d", strtotime($date." + 1 day"));
echo 'date + 1 jour (année bissextile): '.$date.'<br />';
 
// Année non bissextile
$date = "2013-02-28";
echo 'ancienne date (année non bissextile) : '.$date.'<br />';
$date = date("Y-m-d", strtotime($date." + 1 day"));
echo 'date + 1 jour (année non bissextile): '.$date.'<br />';

Retourne :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
ancienne date (année bissextile) : 2012-02-28
date + 1 jour (année bissextile): 2012-02-29
ancienne date (année non bissextile) : 2013-02-28
date + 1 jour (année non bissextile): 2013-03-01
Evidement, ça fonctionne puisqu'on utilise date(), mais ça me semble trop facile, est-ce vraiment fiable ?