begin process at 2012 05 27 19:48:54
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Date / Heure

 > LA DATE D'IL Y A 15 JOURS

LA DATE D'IL Y A 15 JOURS


 Information sur la source

Note :
9 / 10 - par 1 personne
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Date / Heure Niveau :Débutant Date de création :15/11/2004 Date de mise à jour :15/11/2004 22:47:02 Vu :5 561

Auteur : fjandot

Ecrire un message privé
Commentaire sur cette source (19)
Ajouter un commentaire et/ou une note

 Description

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

  • 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;
  • }
  • }
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 .....


 Historique

15 novembre 2004 19:55:47 :
15 novembre 2004 22:44:32 :
15 novembre 2004 22:47:02 :

 Sources de la même categorie

Source avec une capture AGENDA GRAPHIQUE SIMPLE (DÉBUTANT) À INTÉGRER par NicomakM
CALCUL DU NOMBRE DE JOURS CONTENUS DANS L'INTERSECTION DE DE... par curphey
CALENDRIER EN 70 LIGNES par tchconst
Source avec Zip CALENDRIER par gabay
CALENDRIER SIMPLE par manuche

Commentaires et avis

Commentaire de coockiesch le 15/11/2004 19:15:42

Salut!
Juste une petite remarque: Il vaut mieux éviter les " " et préférer les  ' ' quand c possible pour des questions de rapidité... Et dans ce cas, vu qu'il s'agit d'entiers, ils ne sont pas nécessaires...

@++

R@f

Commentaire de fjandot le 15/11/2004 19:52:34

ok, alors je corrige ....

Merci pour l'info !

Commentaire de coockiesch le 15/11/2004 20:17:16

Salut!
Dsl, j'ai été peu clair... Je voulais dire aussi que pour des entiers, il n'y a besoin de mettre aucun des 2...

@++

R@f

Commentaire de fjandot le 15/11/2004 20:32:26

Salut (à nouveau )

J'avais bien compris, mais ce petit bout de code s'adresse plutot aux débutants.

Je pense que le codeur qui s'attache à grapiller quelques micro-secondes en remplacant les " par des ' sur les entiers, doit connaitre les fonctions date et mktime depuis très longtemps.

Toutefois je trouve ta remarque très pertinante ici !! En effet, un "débutant" recherchant ce petit bout de script poura également aprendre qu'il est préférable de réserver le ' pour des entiers et le " pour des chaines !!!!!

On apprend tous les jours - et parfois sans s'en rendre compte ......

@+

fjandot

Commentaire de coucou747 le 15/11/2004 21:41:50 administrateur CS

non pour un entier on ne met rien...
$ma_variable=4;
c'est sufisant, ça prends moins d'espace mémoire et c'est géré comme une variable nombre et non une chaine (si tu fais un peu de C tu vois vite la diférence...)...
"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" => euh t'es sur ?? c'est pas une fonction, c'ets un bout de code... une fonction contient un return ect...

le tu as utilisé une fonction déja présente dans php...

Commentaire de fjandot le 15/11/2004 22:03:10

OK,

Comme ca ca te va mieux ???

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;
}
}

Commentaire de coucou747 le 15/11/2004 22:12:40 administrateur CS

ça marche ça si tu l'appeles avec une autre valeur ?? (je suis habitué au C et en C, ça aurait assigné les valeurs du haut aux variables, donc rendant ta fonction inutilisable...)

je me trompes peut-être, j'ai bcp de réflèxes provenant du C..

Commentaire de coucou747 le 15/11/2004 22:15:19 administrateur CS

et lasi tu regardes bien la tête de ta fonction, tu ne fais plus que vérifier tes paramètres et renvoyer la valeur que retourne une autre fonction... mktime...

Commentaire de aquewel le 15/11/2004 22:29:25

On va pas faire deprimer les debutants alors qu'on est la pour s'aider lol c'est ambigu mdr je m'en sors pas !!! (on s'aide aussi quand on joue sr les mots aussi !) enfin bref un commentaire pour rien

moi j'apprecie en tout cas car en se moment j'en bouche des date() et mktime() ! et j'ai du mal

Commentaire de fjandot le 15/11/2004 22:31:21

Pas tout à fait ...

J'ai également pas mal de réflexes du C, mais assez vieux et mélangés avec beaucoup d'autres languages.......

L'entête de la fonction assigne des valeurs par défaut aux variables si elles sont omises.
ex : MyGetDate(-2); donne 15/11/2002

Pour spécifier -3 jours, il faut mettre :
MyGetDate(0,0,-2); donne 13/11/2004

Le If sert lui à tester si les variables sont des entier, sinon erreur dans mktime

je retourne effectivement le résultat de MKtime, mais à une date "relative" et non absolue comme son il en est de son usage classique.

Voilà les explications.

Je pensais pas faire autant parler avec ce petit bout de code !!!!!
Pour avoir la date du jour en format MySql :
MyGetDate(0,0,0,TRUE);

Commentaire de jeca le 19/11/2004 07:54:03

Bonjour,

Php fournit une fonction pour les calculs : "strtotime".
Ex :

<?php
$nb_jours = -15;
echo "Il y a 15 jours, nous étions le " . date('d/m/Y', strtotime("now $nb_jours day"));
?>

Commentaire de voyeaud le 10/03/2005 00:44:43

Bonsoir,

je ne suis pas un pro mais plutôt nul à fond!

Ton script marche t-il sur des dates anciennes?
Par exemple en 1705!

Je cherche un script qui marche avec ce type d'année pour fazire un calcul sur la date de Pâques.

Amitiés

Commentaire de fjandot le 10/03/2005 03:50:20

Bonjour,

Je ne peux pas te dire pour les dates anciennes, je n'ai pas testé !

En revanche - j'espère ne pas dire de bêtise- il me semble avoir aperçu quelque part une fonction avec un nom comme EasterDay, qui donnerai le jour de Paques pour une année donnée.
Mais je sais plus si c'est en php, javascript ou asp

Cordialement

Commentaire de voyeaud le 10/03/2005 18:36:48

Bonsoir,

Merci pour ta réponse!

J'en connais l'existence en PHP.
Mais je n'arrive pas à faire ce que je veux.

Soit une année x entrée en formulaire
afficher la date de Pâques pour x ET les dates liées soit -63, -56, -49, -42, -35, -28, -21, -14, -7 , +7, +40 et +50 jours

J'ai une base de donnée contenant les dates de Pâques que je comptais utiliser mais cela ne marche pas.

Si tu peux m'aider je serais bien content.
Amitiés

Commentaire de fjandot le 10/03/2005 19:57:41

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

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

cordialement.

Commentaire de fjandot le 10/03/2005 19:59:54

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

Commentaire de caviar le 20/11/2006 15:41:16

excellent !
merci à toi !
@+

Commentaire de php00 le 22/01/2007 03:38:36

merci bien

Commentaire de zniko07 le 29/09/2009 17:18:25

$now = time();
$quinzeJ = 3600 * 24 * 15;
echo date("j/m/Y", $now - $quinzeJ);

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,749 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales