IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Gestion de date / fuseau


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 14
    Par défaut Gestion de date / fuseau
    bonjour le forum ,
    j 'utilise un code qui marche parfaitement bien , ici en France .
    je m'explique :
    Avec ce code , lorsque je vais sur ma page , je crée (si ce n est pas déjà fait ) 2 enregistrements en base avec la date du jour . aujourd'hui nous sommes le 25/02 , je vais sur cette page et 2 enregistrements sont crées avec la date du 25/02/15 dans le champ date_cr.
    Cependant je voudrais apporter une modification car les utilisateurs de ce site sont australiens . donc il faudrait utiliser le même fuseau horaire que l'australie et non pas la france (il faut rajouter 10 heures) .

    donc pour résumer , avec le code ci dessous , lorsque l'utilisateur australien va ouvrir la page et créer les 2 enregistrements à 17h00 heure française le 25/02 , il faudra qu il ait lui dans le champ date_cr la date du 2015-02-26 .
    je ne veux modifier que la date . le reste me convient parfaitement .

    merci pour votre aide . mes competences dans ce domaine sont trés limités .
    pour info : php4 / j utilise un serveur mutualisé chez ovh

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    <?
    require_once 'conf/connect.php';
    if ( (isset($_POST['tech'])) || (isset($_POST['crew'])) || (isset($_POST['esc'])) || (isset($_POST['inc'])) || (isset($_POST['div'])) || (isset($_POST['meteo'])) ){
    	$requete2="SELECT nom_g FROM groupe WHERE login_g='".$_SESSION['username']."'";
    	$res2=mysql_query($requete2);
    	$nomCDQ=mysql_fetch_array($res2);
    	if ((isset($_POST['num2']) && ($_POST['num2']!='')) && (isset($_POST['popup']) && ($_POST['popup']==1))){
    		$requete3= "INSERT INTO compterendu(date_cr,heure_cr,vacation_cr,cdq_cr,technique_cr,crew_cr,dama_cr,airs_cr,meteo_cr,arpt_cr,acmi_cr,prog_cr,escale_cr,retard_cr,surete_cr,divers_cr,volService_cr,evenement_cr,reduc_cr,volRC_cr,volAnnule_cr,resume_cr) VALUES('".gmdate("Y/m/d")."','".gmdate("H:i:s")."','".$_POST['vac']."','".$nomCDQ[0]."','".addslashes($_POST['tech'])."','".addslashes($_POST['crew'])."','".addslashes($_POST['dama'])."','".addslashes($_POST['airs'])."','".addslashes($_POST['meteo'])."','".addslashes($_POST['arpt'])."','".addslashes($_POST['acmi'])."','".addslashes($_POST['prog'])."','".addslashes($_POST['escale'])."','".addslashes($_POST['retard'])."','".addslashes($_POST['surete'])."','".addslashes($_POST['divers'])."','".addslashes($_POST['volService'])."','".addslashes($_POST['evenement'])."','".addslashes($_POST['reduc'])."','".addslashes($_POST['volRC'])."','".addslashes($_POST['volAnnule'])."','".addslashes($_POST['resume'])."')";
    		$res3 = mysql_query($requete3);
    		//selection de la derniere insertion dans la base + ouverture Pop up
    		echo "<script language='JavaScript'>popupEnvoi(\"".(mysql_insert_id())."\")</script>";
    	}
    	else{
    		$requete3= "INSERT INTO compterendu(date_cr,heure_cr,vacation_cr,cdq_cr,technique_cr,crew_cr,dama_cr,airs_cr,meteo_cr,arpt_cr,acmi_cr,prog_cr,escale_cr,retard_cr,surete_cr,divers_cr,volService_cr,evenement_cr,reduc_cr,volRC_cr,volAnnule_cr,resume_cr) VALUES('".gmdate("Y/m/d")."','".gmdate("H:i:s")."','".$_POST['vac']."','".$nomCDQ[0]."','".addslashes($_POST['tech'])."','".addslashes($_POST['crew'])."','".addslashes($_POST['dama'])."','".addslashes($_POST['airs'])."','".addslashes($_POST['meteo'])."','".addslashes($_POST['arpt'])."','".addslashes($_POST['acmi'])."','".addslashes($_POST['prog'])."','".addslashes($_POST['escale'])."','".addslashes($_POST['retard'])."','".addslashes($_POST['surete'])."','".addslashes($_POST['divers'])."','".addslashes($_POST['volService'])."','".addslashes($_POST['evenement'])."','".addslashes($_POST['reduc'])."','".addslashes($_POST['volRC'])."','".addslashes($_POST['volAnnule'])."','".addslashes($_POST['resume'])."')";
    		$res3 = mysql_query($requete3);
    	}
    }
    ?>
    <form name="frmRecherche" method="post" action="compteRendu.php">
    	<input type="hidden" name="numCR" value="<? echo (isset($_POST['numCR'])?$_POST['numCR']:''); ?>">				<!--ex 00075-->
    	<input type="hidden" name="vacation" value="<? echo (isset($_POST['vacation'])?$_POST['vacation']:''); ?>">
    	<center><select name="liste" onChange="valider()" ></center>
    	<option value="-1" selected>------------------------------------------------------------- Choisissez un compte rendu ---------------------------------------------------------</option>		<!--Insertion des champs de la liste déroulante-->						  
    <?
    $dateJp1=date("Y/m/d",mktime(0,0,0,substr(gmdate("Y/m/d"),5,2),substr(gmdate("Y/m/d"),8,2)+1,substr(gmdate("Y/m/d"),0,4)));		//date J+1 (en fait + 2 car il fo compter la journée)
    $dateJm1=date("Y/m/d",mktime(0,0,0,substr(gmdate("Y/m/d"),5,2),substr(gmdate("Y/m/d"),8,2)-1,substr(gmdate("Y/m/d"),0,4)));		//date J-1
    $requete1="SELECT num_cr FROM compterendu GROUP BY date_cr,vacation_cr HAVING count(*) = 1";
    $res1=mysql_query($requete1);
    $requete2="SELECT date_cr,vacation_cr FROM compterendu GROUP BY date_cr,vacation_cr HAVING count(*) > 1";
    $res2=mysql_query($requete2);
    //parcours les doublons
    $i=0;
    $final=array();
    while ($resultat2=mysql_fetch_array($res2)){
    	$date=$resultat2[0];
    	$vacation=$resultat2[1];
    	$requete3 = "SELECT num_cr FROM compterendu WHERE date_cr='".$date."' AND vacation_cr='".$vacation."' ORDER BY heure_cr DESC LIMIT 0,1";
    	$res3=mysql_query($requete3);
    	$resultat3=mysql_fetch_array($res3);
    	$final[$i]=$resultat3[0];
    	$i++;
    } 
    //ensuite je parcours les resultats non doublons pour les ajouter a la fin
    while($resultat1=mysql_fetch_array($res1)){
    	$final[$i]=$resultat1[0];
    	$i++;
    }
    //il nous reste a verifier que ceux afficher correspondent a l'intervalle de date
    $rep="";
    foreach ($final as $val)
    	$rep=$rep.",".$val;			//liste
    $rep=substr($rep,1,strlen($rep));
    $requete4="SELECT * FROM compterendu WHERE date_cr='".gmdate("Y/m/d")."' AND num_cr IN (".$rep.") ORDER BY date_cr,vacation_cr";
    $res4=mysql_query($requete4);
    if (isset($_POST['numCR'])){
    	$requete2 = "SELECT * FROM compterendu WHERE num_cr='".$_POST['numCR']."'";
    	$res2=mysql_query($requete2);
    	$result=mysql_fetch_array($res2);
    }
    $i=0;
    while ($row = mysql_fetch_row($res4)){
    	$date=substr($row[1],8,2)."/".substr($row[1],5,2)."/".substr($row[1],0,4);
    	$rep=$row[4]." n°".$row[0]." // ".$row[3]." // ".$date." // modif : ".$row[2]." UTC // CDQ : ".$row[5]."";
    	//if (($_POST['liste']==$rep) || (($_POST['num2']+1)==$row[0]))
    	if (($_POST['liste']==$rep) || (mysql_insert_id()==$row[0])){
    		echo "<option value='".$rep."' selected>".$rep."</option>";
    		if ($_POST['num2']!='')
    			echo "<option><script language='Javascript'>valider()</script></option>";
    	}
    	else
    		echo "<option value='".$rep."'>".$rep."</option>";
    	$i++;
    	if ($i==2)
    		echo "<option value='-1'>-----------------------------------------------------------------------------------------------------------------------------------------------------------------</option>";
    		//echo "<option value='".$rep."'>".$_POST['num2']."-".$row[0]."</option>";
    }
    $nb=mysql_num_rows($res4);
    if ($nb==''){
    	//reprendre le bon ident du CDQ dans la base
    	$requete2="SELECT nom_g FROM groupe WHERE login_g='".$_SESSION['username']."'";
    	$res2=mysql_query($requete2);
    	$nomCDQ=mysql_fetch_array($res2);
    	////////////////////////////////////////////////////////////////////   AMO ///////////////// MODIF HEURE DE CREATION /////
    	$requete5="INSERT INTO compterendu(date_cr,heure_cr,vacation_cr,cdq_cr) VALUES('".gmdate("Y/m/d")."','01:01','matin','".$nomCDQ[0]."')";
    	$res5=mysql_query($requete5);
    	$requete6="INSERT INTO compterendu(date_cr,heure_cr,vacation_cr,cdq_cr) VALUES('".gmdate("Y/m/d")."','01:01','soir','".$nomCDQ[0]."')";
    	$res6=mysql_query($requete6);
    	echo "<option><script language='Javascript'>window.location.reload()</script></option>";
    }
    ?>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Converti la date à l'affichage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    date_default_timezone_set('Australia/Canberra');
    $date = '2015-02-25 19:00:00';
    echo date('Y-m-d', strtotime($date . ' UTC'));
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 14
    Par défaut
    merci pour ta réponse rapide
    je le place ou dans mon code ??

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    A l'endroit ou tu affiches la date.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 14
    Par défaut
    date_default_timezone_set ne fonctionne pas avec php4

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Essai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    putenv ('TZ=Australia/Canberra');
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. gestion de date de fin de mois
    Par bzh56 dans le forum Bases de données
    Réponses: 4
    Dernier message: 14/01/2005, 10h15
  2. Réponses: 3
    Dernier message: 13/08/2004, 18h52
  3. [MCD] Gestion de date
    Par Seb7 dans le forum Schéma
    Réponses: 13
    Dernier message: 08/09/2003, 09h29
  4. [MCD] [MCD] Gestion des dates
    Par brionne dans le forum Schéma
    Réponses: 3
    Dernier message: 30/05/2003, 13h01
  5. [BEST_PRACTICE][Merise] MCD & gestion de date
    Par Seb7 dans le forum Schéma
    Réponses: 4
    Dernier message: 16/04/2003, 17h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo