Calculer date avec strtotime ou mktime [Résolu]

Signaler
Messages postés
132
Date d'inscription
mardi 24 décembre 2002
Statut
Membre
Dernière intervention
12 novembre 2019
-
cs_eli42
Messages postés
132
Date d'inscription
mardi 24 décembre 2002
Statut
Membre
Dernière intervention
12 novembre 2019
-
Bonjour,

Je viens au secours, j'ai une variable date et je voudrais lui rajouter 8 jours
But date du document + 8 jours pour Echeance, ma date de depart et FR JJ/MM/AAAA

donc j'ai un peu recherche sur le web et j'ai trouve deux technique :

$dat = '01/01/2013';

// solution 1 ---------------------------------------------
function retour_echeance($timestamp) {
$j = substr($timestamp,0,2);
$m = substr($timestamp,3,2);
$a = substr($timestamp,6,4);
$dat_plus8j = date('d/m/Y',mktime(0,0,0,$m,($j + 8),$a));
return $dat_plus8j;
}
echo retour_echeance($dat) . '
';
//---------------------------------------------------------
// solution 2 ---------------------------------------------
$dat = implode('/', array_reverse(explode('/',$dat)));
echo date('d/m/Y', strtotime("+8 days", strtotime($dat)));
//---------------------------------------------------------

Les deux solutions marche, mais quelle est la plus rapide entre les deux ?
Ou y a t'il une 3eme solution avec le PHP 5.4 ?

la solution 2 est interessante car elle accepte 1/1/2013, mais dans mon cas c'est formater en JJ/MM/AAAA
je pense opter pour la solution 2, mais votre avis averti m'interesse.

Beau Temps Belle Mer
Georgio

2 réponses


Bonjour,

Depuis PHP5, il existe des fonctions date très simple (Lien ici).

Pour ton exemple, cette fonction suffit :
<?php
$date = date_create_from_format('j/m/Y', '28/01/2013');
date_add($date, date_interval_create_from_date_string('8 days'));
echo date_format($date, 'd/m/Y'); // affiche 05/02/2013
?>
Messages postés
132
Date d'inscription
mardi 24 décembre 2002
Statut
Membre
Dernière intervention
12 novembre 2019

Bonjour,

Merci pour la reponse rapide
Je vais opter pour ta formule

Beau Temps Belle Mer