Page 1 sur 1

calcul d'horaires J+1 sur page php

Posté : 05 mars 2006, 01:46
par chib
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 !

Posté : 05 mars 2006, 02:02
par Truc
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:

Posté : 05 mars 2006, 10:32
par chib
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 !

Posté : 05 mars 2006, 10:57
par Cyrano
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.

Posté : 05 mars 2006, 15:07
par Invité
merci du conseil, je corrige :wink:

Posté : 08 mars 2006, 21:21
par chib
petit up !

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

merci :wink:

Posté : 09 mars 2006, 00:02
par Truc
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 ?

Posté : 09 mars 2006, 00:48
par Invité
en supposant que 03 soit le mois de mars oui :wink:

en fait : YYYY-MM-DD

Posté : 09 mars 2006, 01:08
par Truc
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;

Posté : 09 mars 2006, 01:27
par Invité
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...

Posté : 09 mars 2006, 01:47
par Truc
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");

Posté : 09 mars 2006, 01:55
par chib
c'est bon je vais me débrouiller avec tout ça !

merci encore !


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

Posté : 09 mars 2006, 02:06
par Truc
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. :)