Calculer date avec strtotime ou mktime [Résolu]

cs_eli42 116 Messages postés mardi 24 décembre 2002Date d'inscription 30 juillet 2018 Dernière intervention - 27 mars 2013 à 20:57 - Dernière réponse : cs_eli42 116 Messages postés mardi 24 décembre 2002Date d'inscription 30 juillet 2018 Dernière intervention
- 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
nicotontige - 28 mars 2013 à 13:24
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

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de nicotontige
cs_eli42 116 Messages postés mardi 24 décembre 2002Date d'inscription 30 juillet 2018 Dernière intervention - 28 mars 2013 à 13:49
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.