Calculer date avec strtotime ou mktime [Résolu]

Messages postés
132
Date d'inscription
mardi 24 décembre 2002
Statut
Membre
Dernière intervention
17 mai 2019
- - Dernière réponse : cs_eli42
Messages postés
132
Date d'inscription
mardi 24 décembre 2002
Statut
Membre
Dernière intervention
17 mai 2019
- 28 mars 2013 à 13:49
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
Afficher la suite 

2 réponses

Meilleure réponse
3
Merci
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
?>

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 128 internautes nous ont dit merci ce mois-ci

Commenter la réponse de nicotontige
Messages postés
132
Date d'inscription
mardi 24 décembre 2002
Statut
Membre
Dernière intervention
17 mai 2019
0
Merci
Bonjour,

Merci pour la reponse rapide
Je vais opter pour ta formule

Beau Temps Belle Mer
Commenter la réponse de cs_eli42