Réglez la date par défaut sur ​​un calendrier

Ce forum est dédié aux discussions qui concernent les graphiques réalisés avec la librairie Highstock, Une question, un bug ?

Modérateurs : jturlier, Météo Villarzel

Répondre
Javier
Messages : 263
Enregistré le : 15 févr. 2014, 09:23
Localisation : San Sebastián, España
Contact :

Réglez la date par défaut sur ​​un calendrier

Message par Javier » 23 juil. 2014, 23:50

Saludos

Dans l'image suivante, nous pouvons voir deux calendriers:

Image

La date spécifiée dans le tableau ci-dessous, je pense que je peux obtenir ainsi:

Code : Tout sélectionner

<input type="text" name="al" id="edit2" size="10" value="<? echo date('d')."-".date('m')."-".date('Y');  ?>">
Ma question est: comment définir la date du premier jour du mois en cours dans le calendrier ci-dessus?

Muhas gracias
Davis Vantage Pro2 +, Windows 10, Windows 7 (64), Graphweather 3.0.15, Weatherlink 6.0.3, template Pierre-André, template Jachym
Image

Avatar du membre
Météo Villarzel
Administrateur du site
Messages : 524
Enregistré le : 06 févr. 2014, 09:48
Contact :

Re: Réglez la date par défaut sur ​​un calendrier

Message par Météo Villarzel » 25 juil. 2014, 15:08

Salut Javier,
Je te donne la solution, elle n'est pas de moi mais de Christian http://www.meteo-kogenheim.fr/

connexion à la BDD

Code : Tout sélectionner

<?php
require("mysql_connect.php"); 
				// exécution de la requête
				$sql="SELECT tstamp, solarradiation, uvindex, outdoortemperature, windspeed, windgust, winddir, instantrain, rain_daily, dewpoint, sealevelpressure, hioutdoortemperature from data where tstamp >= '". mktime(0,0,0,$mois_debut,$jour_debut,$annee_debut)."' and  tstamp <= '". mktime(23,59,59,$mois_fin,$jour_fin,$annee_fin)."' ORDER BY tstamp";
				$query=mysql_query($sql);   
				$trouve = 0 ;
				$jouractuel = $debut ;
				$pluiejour = 0 ;
				if ($query) {
					while($data = mysql_fetch_array($query)) {
						$trouve = 1 ;
						$time[] = ($data['tstamp'])*1000 ;
						$temp[] = $data["outdoortemperature"] ;
						$win[] = $data["windchill"] ;
						$dew[] = $data["dewpoint"] ;
						$hum[] = $data["hum_e"] ;
						$sol[] = $data["solarradiation"] ;
						$uv[] = $data["uvindex"] ;
						$wspeed[] = $data["windspeed"] ;
						$wgust[] = $data["windgust"] ;
						$wdir[] = $data["winddir"] ;
						$rain[] = $data["instantrain"] ;
						if($data['tstamp'] != $jouractuel) {
							$jouractuel = $data['tstamp'] ;
							$pluiejour = $data["rain_daily"] ;
						} else {
							$pluiejour += $data["rain_daily"] ;
						}
						$rday[] = $pluiejour ;
						$pres[] = $data["sealevelpressure"] ;
					}
				}
				if($trouve == 0) {
					$time[] = 'null' ;
					$temp[] = 'null' ;
					$win[] = 'null' ;
					$dew[] = 'null' ;
					$hum[] = 'null' ;
					$sol[] = 'null' ;
					$uv[] = 'null' ;
					$wspeed[] = 'null' ;
					$wgust[] = 'null' ;
					$wdir[] = 'null' ;
					$rain[] = 'null' ;
					$rday[] = 'null' ;
					$pres[] = 'null' ;
				}
			?>
Dans le PHP

Code : Tout sélectionner

<?php
			// récupération des paramètres
			if(isset($_GET["du"])) {
				$tab = explode("-",$_GET["du"]) ;
				$jour_debut = $tab[0] ;
				$mois_debut = $tab[1] ;
				$annee_debut = $tab[2] ;
			} else {
				$jour_debut = 1 ;
				$mois_debut = date("m") ;
				$annee_debut = date("Y") ;
			}
			if(isset($_GET["au"])) {
				$tab = explode("-",$_GET["au"]) ;
				$jour_fin = $tab[0] ;
				$mois_fin = $tab[1] ;
				$annee_fin = $tab[2] ;
			} else {
				$jour_fin = date("d") ;
				$mois_fin = date("m") ;
				$annee_fin = date("Y") ;
			}
			//calcul si la fin de la période est situé après la date actuelle
			$nbr_jour_valide = round((strtotime(sprintf("%02d-%02d-%04d", $jour_fin, $mois_fin, $annee_fin)) - strtotime(date('d-m-Y')))/(60*60*24)+1) ; 
			if ($nbr_jour_valide > 0) { 
				$jour_fin = date("d") ;
				$mois_fin = date("m") ;
				$annee_fin = date("Y") ;
			}
			//calcul si le début de la période est situé avant le 01/01/2008
			$nbr_jour_valide = round((strtotime(sprintf("%02d-%02d-%04d", $jour_debut, $mois_debut, $annee_debut)) - strtotime(sprintf("%02d-%02d-%04d", 1, 1, 2008)))/(60*60*24)+1) ; 
			if ($nbr_jour_valide < 0) { 
				$jour_debut = 1 ;
				$mois_debut = 1 ;
				$annee_debut = 2008 ;
				//calcul si la fin de la période est situé avant le 01/01/2008
				$nbr_jour_valide = round((strtotime(sprintf("%02d-%02d-%04d", $jour_fin, $mois_fin, $annee_fin)) - strtotime(sprintf("%02d-%02d-%04d", 1, 1, 2008)))/(60*60*24)+1) ; 
				if ($nbr_jour_valide < 0) { 
					$jour_fin = 1 ;
					$mois_fin = 1 ;
					$annee_fin = 2008 ;
				}
			}
			$nbr_jour = round((strtotime(sprintf("%02d-%02d-%04d", $jour_fin, $mois_fin, $annee_fin)) - strtotime(sprintf("%02d-%02d-%04d", $jour_debut, $mois_debut, $annee_debut)))/(60*60*24)+1) ; 
		?>
Dans le body

Code : Tout sélectionner

<input type="text" name="du" id="edit1" size="10" value="<?php echo sprintf("%02d-%02d-%04d", $jour_debut, $mois_debut, $annee_debut);?>">
ne pas oublier d'encoder en Json

Code : Tout sélectionner

eval('var dTime = [<?php echo implode(",", $time); ?>]');
			eval('var dtemp = [<?php echo implode(",", $temp); ?>]');
			eval('var dhum = [<?php echo implode(",", $hum); ?>]');
			eval('var dwin = [<?php echo implode(",", $win); ?>]');
			eval('var ddew = [<?php echo implode(",", $dew); ?>]');
			eval('var dsol = [<?php echo implode(",", $sol); ?>]');
			eval('var duv = [<?php echo implode(",", $uv); ?>]');
			eval('var dwspeed = [<?php echo implode(",", $wspeed); ?>]');
			eval('var dwgust = [<?php echo implode(",", $wgust); ?>]');
			eval('var dwdir = [<?php echo implode(",", $wdir); ?>]');
			eval('var drain = [<?php echo implode(",", $rain); ?>]');
			eval('var drday = [<?php echo implode(",", $rday); ?>]');
			eval('var dpres = [<?php echo implode(",", $pres); ?>]');
Bonne fin de journée
Station Vantage Pro2+ avec station agricole - Weatherlink - GraphWeather 3.0.15b - Cumulus 1.9.4 - Windows 7/64
Graphique dynamique à partir d'une bd MySql - VP2SQL

Image

Javier
Messages : 263
Enregistré le : 15 févr. 2014, 09:23
Localisation : San Sebastián, España
Contact :

Re: Réglez la date par défaut sur ​​un calendrier

Message par Javier » 25 juil. 2014, 19:20

Salut Pierre - André

Merci à vous et à Christian pour la réponse.

Comme vous le savez, je ne suis pas un expert en programmation :lol:

J'essaie de déchiffrer l'énigme que vous me proposez :roll:

Saludos desde San Sebastián
Davis Vantage Pro2 +, Windows 10, Windows 7 (64), Graphweather 3.0.15, Weatherlink 6.0.3, template Pierre-André, template Jachym
Image

Répondre