La date d'il y a 15 jours

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 996 fois - Téléchargée 34 fois

Contenu du snippet

Je cherchais une petite fonction pour me retourner une date antétieure ou postérieure en fonction d'un nombre de jours donnés. J'ai pas trouvé, je l'ai fait

Source / Exemple :


Suite aux commentaires, voici le code "online" :

// Indiquer le nombre de jours, mois, ans et le signe plus si c'est en positif.
$nb_ans='0';
$nb_mois='0';
$nb_jours = '-15'; // Par exemple
echo 'il y a quinze jours on étais le : ';
echo date('d/m/Y', mktime(0,0,0,date('m')+$nb_mois,date('d')+$nb_jours,date('Y')+$nb_ans));

Et voici la fonction :

//--------------------------------------------------------------------
//  string fonction MyGetDate([int],[int],[int],[TRUE])
//--------------------------------------------------------------------
// Cette fonction retourne une date "relative" à la date du jour, contrairement à mktime qui retourne une date "absolue".
// L'appel sans argument retourne la date du jour au format 15/11/2004
//
// Les arguments (dans l'ordre) :
// [-] année(s) -> année(s) à ajouter/enlever à la date du jour
// [-] mois     -> mois à ajouter/enlever à la date du jour
// [-] jour(s)  -> jour(s) à ajouter/enlever à la date du jour
// [True]       -> format MySql (2004/11/15)
//---------------------------------------------------------------------
// En cas d'erreur sur les arguments, MyGetDate retourne FALSE.
// Sinon une chaine contenant la date demandée
//---------------------------------------------------------------------
function MyGetDate( $nb_ans='0', $nb_mois='0', $nb_jours='0', $mysql=FALSE){
  if( is_int($nb_ans) && is_int($nb_mois) && is_int($nb_jours)){
    $mysql ? $format = "Y-m-d" : $format = "d/m/Y";
    return date($format, mktime(0,0,0,date('m')+$nb_mois,date('d')+$nb_jours,date('Y')+$nb_ans));
  }
  else{
    return FALSE;
  }
}

Conclusion :


Petit code tout simple, mais assez pratique.
Je m'en sert pour gérer l'archivage automatique de documents datants de plus de 15 jours !!

Nota : ca gère les mois à 28,29,30et 31 jours tout seul et les années bissextilles !

On peut aussi jouer avec les heures .....

A voir également

Ajouter un commentaire Commentaires
Messages postés
3
Date d'inscription
lundi 23 avril 2007
Statut
Membre
Dernière intervention
10 février 2009

$now = time();
$quinzeJ = 3600 * 24 * 15;
echo date("j/m/Y", $now - $quinzeJ);
Messages postés
1
Date d'inscription
mercredi 10 janvier 2007
Statut
Membre
Dernière intervention
22 janvier 2007

merci bien
Messages postés
329
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
29 mars 2015
3
excellent !
merci à toi !
@+
Messages postés
8
Date d'inscription
lundi 11 août 2003
Statut
Membre
Dernière intervention
10 mars 2005

Oups j'ai oublie !

Comme la fonction utilise mktime, les dates utilisables sont celles après le 01/01/1970.

Voilà, donc voir le lien ci-dessus pour des dates "anciennes"

le calendrier perpétuel, c'est un gros morceau en programation !!

Cordialement
Messages postés
8
Date d'inscription
lundi 11 août 2003
Statut
Membre
Dernière intervention
10 mars 2005

Voilà qui devrait te donner quelques pistes .....

http://www.phpcs.com/code.aspx?ID=26033

cordialement.
Afficher les 19 commentaires

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.