Ajouter un intervalle de jours à une date

Signaler
Messages postés
3
Date d'inscription
samedi 4 mars 2006
Statut
Membre
Dernière intervention
12 septembre 2009
-
Messages postés
341
Date d'inscription
mercredi 17 juillet 2002
Statut
Membre
Dernière intervention
14 juillet 2011
-
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.
A voir également:

15 réponses

Messages postés
3
Date d'inscription
samedi 4 mars 2006
Statut
Membre
Dernière intervention
12 septembre 2009

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); 
Messages postés
662
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2009
1
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...
Messages postés
341
Date d'inscription
mercredi 17 juillet 2002
Statut
Membre
Dernière intervention
14 juillet 2011
12
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
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
27
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 -
Messages postés
662
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2009
1
La classe DateTime et sa méthode modify est présente depuis longtemps elle :)

Les nouvelles méthodes add() etc, elles sont récentes.
Messages postés
662
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2009
1
Pour les PHP < 5.3, la classe LabDateTime possède les méthodes manquantes (addition, soustraction, etc...)
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
27
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 -
Messages postés
2381
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
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.
Messages postés
662
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2009
1
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.
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
27
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 -
Messages postés
341
Date d'inscription
mercredi 17 juillet 2002
Statut
Membre
Dernière intervention
14 juillet 2011
12
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
Messages postés
2381
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
16
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.
Messages postés
2381
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
16
Pour Jeca, ça marche mais à partir de la date du jour non ??
Messages postés
341
Date d'inscription
mercredi 17 juillet 2002
Statut
Membre
Dernière intervention
14 juillet 2011
12
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
Messages postés
341
Date d'inscription
mercredi 17 juillet 2002
Statut
Membre
Dernière intervention
14 juillet 2011
12
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