Ajouter un intervalle de jours à une date

helphp Messages postés 3 Date d'inscription samedi 4 mars 2006 Statut Membre Dernière intervention 12 septembre 2009 - 12 sept. 2009 à 13:50
cs_jeca Messages postés 341 Date d'inscription mercredi 17 juillet 2002 Statut Membre Dernière intervention 14 juillet 2011 - 13 sept. 2009 à 11:41
Bonjour,

comme le sujet l'indique, j'aimerais ajouter à mon code une intervalle de 7 jours à une date.

j'ai ceci comme début:

$featured7date=date("Y-m-d H:i:s");


J'ai essayé:

$featured7date=date("Y-m-d H:i:s") + 7;


mais sans résultat.

15 réponses

helphp Messages postés 3 Date d'inscription samedi 4 mars 2006 Statut Membre Dernière intervention 12 septembre 2009
12 sept. 2009 à 14:20
Finalement en cherchant un peu plus, j'ai trouvé la réponse à ma question.

Voici ce que j'ai trouvé.

$mkendtimep=mktime(date("H"), date("i"), date("s"), date("m"), date("d")+7, date("Y"));
$featured7date=date("Y-m-d H:i:s",$mkendtimep); 
nautilus99 Messages postés 661 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 18 septembre 2009 1
12 sept. 2009 à 18:29
Bonjour,

Esy=t-ce que tu as regardé la classe DateTime de PHP ?

La méthode add, paramétrable, s'y trouve, sans besoin de jongler avec des complexités...
cs_jeca Messages postés 341 Date d'inscription mercredi 17 juillet 2002 Statut Membre Dernière intervention 14 juillet 2011 14
12 sept. 2009 à 18:35
Bonjour,

Ceci est certainement beaucoup plus rapide à l'exécution :
<?php
  $date = new DateTime();
  $date -> modify('+7 day');

  echo $date -> format('Y-m-d H:i:s');
?>



Cordialement.

JC
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
12 sept. 2009 à 19:32
Salut,

Le problème avec DateTime est sa nouveauté. Il y a, je crois, pas mal de méthodes qui ne sont disponibles qu'avec PHP 5.3 (de mémoire ça doit être le cas de la soustraction et de la différence de dates, entres autres)
Autant dire que peu d'hébergeurs permettent son plein emploi.

Cordialement,


Kohntark -

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nautilus99 Messages postés 661 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 18 septembre 2009 1
12 sept. 2009 à 19:38
La classe DateTime et sa méthode modify est présente depuis longtemps elle :)

Les nouvelles méthodes add() etc, elles sont récentes.
nautilus99 Messages postés 661 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 18 septembre 2009 1
12 sept. 2009 à 19:42
Pour les PHP < 5.3, la classe LabDateTime possède les méthodes manquantes (addition, soustraction, etc...)
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
13 sept. 2009 à 02:48
est présente depuis longtemps elle :)

Le "longtemps" est interprétable DateTime n'est disponible que depuis la 5.2 il me semble (je n'ai pas vérifié)
Je serai curieux de voir un doc récent sur la répartition des versions de PHP sur les serveurs.
Question portabilité faut faire gaffe.

Cordialement,


Kohntark -
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
13 sept. 2009 à 08:16
Je suis oui pour la date DateTime qui existe depuis la 5.2.x il me semble. Pour illustrer mes propos, j'ai plusieurs plate-formes avec du 5.2.6 et 5.2.9 et hélas j'ai du intégrer dans mon coté une recherche de version que je retirerai quand je serai full 5.3, mais c'est clair.. à bas les chaines de caractères pour les traitements de date.
Soyons un peu clean.. LOL !!
Bonne journée à tous
S.
nautilus99 Messages postés 661 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 18 septembre 2009 1
13 sept. 2009 à 09:34
Bonjour,

Je serai curieux de voir un doc récent sur la répartition des versions de PHP sur les serveurs.
Question portabilité faut faire gaffe.

La plupart des grands hébergeurs sérieux proposent PHP 5.2. Vouloir à tout prix rester à PHP 4 alors que le PHP Group en a cessé la maintenance officiellement depuis le 8 Août 2008, et plus de 5 ans après la sortie de PHP 5 revient à du manichéisme inutile, du même ordre que celui qui conduisait les développeurs à continuer en style PHP 3 jusqu'à ce que le retrait pur et simple ce cette version force la migration.
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
13 sept. 2009 à 10:51
Je suis entièrement d'accord avec vous, et ça ne devrait pas vous étonner.
Malheureusement tout le monde ne peut peut être pas se payer un hébergeur sérieux (je sais, il y en a des gratuits également) et je ne serai pas étonné qu'une part importante du web n'y soit pas encore (en 5.2)
Il y a tout juste 1 an, PHP 4 était encore plus répandu que PHP 5 alors que les premières versions de ce dernier datent de 2004.
Partant de ça, peut être y a t il encore beaucoup de version < PHP 5.2 (novembre 2006)
Je ne sais pas, les derniers audits que j'ai pu trouver sur la répartition des versions PHP s'arrêtent fin 2008.

Je ne sais pas non plus si les upgrade au sein des versions majeures (4, 5, ...) se font plus rapidement côté hébergeurs. J'en doute vu les modifications importantes apportées entre la 5.2 et la 5.3.

Faute de stats à jour (???) je pense qu'il faut rester méfiant lors de la conception d'une appli qui se veut portable.
Personnellement je suis minimum en 5.2, comme Syndrael, mais dès lors qu'il y a des calculs complexes sur les dates je préfère utiliser les bonnes vieilles fonctions plutôt que de faire des tests sur les versions (sans compter les méthodes "expérimentales" de DateTime qui peuvent changer d'un jour à l'autre)


Pour résumer (je reste sur mes positions ) : oui oui oui oui et re oui à DateTime pour des applis dont la cible est certaine, pour le reste méfiance !!


Cordialement,


Kohntark -
cs_jeca Messages postés 341 Date d'inscription mercredi 17 juillet 2002 Statut Membre Dernière intervention 14 juillet 2011 14
13 sept. 2009 à 11:09
Pour php < 5.2 :
<?php
  echo date('Y-m-d H:i:s', strtotime('+7 day'));
?>


C'est quand même plus rapide que mktime.

Cordialement.

JC
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
13 sept. 2009 à 11:12
En tout cas, la 5.3 nous offre une fonction que j'attendais depuis longtemps (même si je l'avais codé en une fonction récurrent dans mes dév), c'est DateTime::createFromFormat
Je me demande si il y a moyen via le connecteur mysqli d'avoir un objet DateTime dès qu'il en détecte un (via un paramètre de conf par exemple).
Je ne fais pas reférence à des ORM mais juste mysqli.
S.
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
13 sept. 2009 à 11:13
Pour Jeca, ça marche mais à partir de la date du jour non ??
cs_jeca Messages postés 341 Date d'inscription mercredi 17 juillet 2002 Statut Membre Dernière intervention 14 juillet 2011 14
13 sept. 2009 à 11:23
Oui, car c'était le problème posé.

Mais pour une date quelconque :
<?php
  $tsDate = strtotime('2009-10-15 22:10:25');
  echo date('Y-m-d H:i:s', strtotime('+7 day', $tsDate));
?>



Cordialement.

JC
cs_jeca Messages postés 341 Date d'inscription mercredi 17 juillet 2002 Statut Membre Dernière intervention 14 juillet 2011 14
13 sept. 2009 à 11:41
Un autre avantage de l'objet DateTime est la facukté d'utiliser des dates antérieures au 01/01-1970. Exemple :
<?php
  $date = new DateTime('1770-10-15 22:10:25');
  $date -> modify('+1 year +7 day');
  echo $date -> format('Y-m-d H:i:s');
?>


Cordialement.

JC
Rejoignez-nous