Calculer date avec strtotime ou mktime [Résolu]

Messages postés
118
Date d'inscription
mardi 24 décembre 2002
Dernière intervention
6 décembre 2018
- - Dernière réponse : cs_eli42
Messages postés
118
Date d'inscription
mardi 24 décembre 2002
Dernière intervention
6 décembre 2018
- 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 

Votre réponse

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
?>

Merci nicotontige 3

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

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de nicotontige
Messages postés
118
Date d'inscription
mardi 24 décembre 2002
Dernière intervention
6 décembre 2018
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.