calcul d'horaires J+1 sur page php

chib
Invité n'ayant pas de compte PHPfrance

05 mars 2006, 01:46

bonjour à tous,

J'affiche des horaires sur une page PHP en fonction d'une date (format YYYY-MM-DD) et je ne trouve pas comment faire pour afficher ces horaires pour le jour suivant (et plus tard le précédent) en cliquant sur un lien texte ou un bouton éventuellement.


merci de votre aide !

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

05 mars 2006, 02:02

Salut,
Pour faciliter les calculs passe par un timestamp, en combinant date() (regarde l'exemple 3 de la doc) , mktime() et un explode() sur la date d'origine pour passer les paramètres à mktime().

Tu peux aussi effectuer une recherche sur le forum avec "mktime" tu y trouveras des exemples :wink:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

chib
Invité n'ayant pas de compte PHPfrance

05 mars 2006, 10:32

meric pour la réponse rapide !

J'avais effectivement trouvé quelque chose avec mktime() avant de poster mais je n'arrive à avoir que la date du jour +1... :oops:

voici le code
$date = Array('annee'=>date('Y'), 'mois'=>date('m'), 'jour'=>date('d'));
		  $N = 1;
		  // mktime fait automatiquement le calcul
		  $time = mktime(00, 00, 00, $date['mois'], $date['jour']+$N, $date['annee']); 
		  $dansNjours = date('Y-m-d', $time); 
		  echo $dansNjours;
et ma valeur date dans mon fichier php :
  $date = $_POST["orderdate"];   //entrée
  $date_php = "'$date'";              //sortie
$date correspond à la valeur récupérée d'un formulaire et $date_php à la date entre ' ' pour le traitement dans la requête SELECT


J'ai essayé de modifier le nom de la variable $date dans le premier script mais rien n'y fait...
En fait je voudrais intégrer ce J+1 entre "entrée" et "sortie". C'est possible ??

je sais pas si je suis déjà bien réveillé, si c'est pas clair, je revois ma demande :wink:

merci pour votre aide !

Mammouth du PHP | 19672 Messages

05 mars 2006, 10:57

Si tu veux insérer $date dans une requête assortie d'apostrophes, fais donc une concaténation propre:
$date = $_POST["orderdate"];   //entrée
$date_php = "'". $date ."'";              //sortie
Les aopostrophes sont ici du type "chaine de caractère" que tu ajoutes à la valeur d'une variable PHP.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

05 mars 2006, 15:07

merci du conseil, je corrige :wink:

chib
Invité n'ayant pas de compte PHPfrance

08 mars 2006, 21:21

petit up !

je n'y arrive pas !!
quelqu'un peut m'aider ou m'indiquer une autre voie à suivre ?

merci :wink:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

09 mars 2006, 00:02

quelqu'un peut m'aider ou m'indiquer une autre voie à suivre ?
c'est la meilleure voie :wink:
quel est le format de la date dans "$_POST["orderdate"]" ?

2006-03-08 ?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Invité
Invité n'ayant pas de compte PHPfrance

09 mars 2006, 00:48

en supposant que 03 soit le mois de mars oui :wink:

en fait : YYYY-MM-DD

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

09 mars 2006, 01:08

dans ce cas utilise le cheminement que je t'avais indiqué:
$date= "2006-03-08";

list($annee,$mois,$jour) = explode("-",$date);

$jour++; // ajoute 1 au jour

$time = mktime(00, 00, 00, $mois, $jour, $annee);
$dans1jours = date('Y-m-d', $time);
 echo $dansNjours;

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Invité
Invité n'ayant pas de compte PHPfrance

09 mars 2006, 01:27

nickel ! merci beaucoup Truc.

et je peux lancer cette commande grâce à un lien sur ma page php ? je pense pas mais sait-on jamais...

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

09 mars 2006, 01:47

je n'ai pas vraiment compris ce que tu veux faire mais tu peux en faire une fonction et l'appeler au besoin:
function date_plus($date)
{

   list($annee,$mois,$jour) = explode("-",$date);

   $jour++; // ajoute 1 au jour

   $time = mktime(00, 00, 00, $mois, $jour, $annee);
   $dans1jours = date('Y-m-d', $time);

   return $dans1jours;
}
et l'appeler par la suite:
$date1 = date_plus("2006-03-08");

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

chib
Invité n'ayant pas de compte PHPfrance

09 mars 2006, 01:55

c'est bon je vais me débrouiller avec tout ça !

merci encore !


tu peux ajouter "réglé" dans mon 1er titre.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

09 mars 2006, 02:06

de rien... :)
tu peux ajouter "réglé" dans mon 1er titre.
ça sera fait par un Modo
pense à t'inscrire la prochaine fois (ça ne coute rien :wink: ) et tu pouras lréaliser cette manip toi même. :)

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute