mois avec 30, 31 ou 29 jours

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

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

muchistic
Messages : 142
Enregistré le : 17 févr. 2014, 20:20
Localisation : Canejan (33)
Contact :

mois avec 30, 31 ou 29 jours

Message par muchistic » 16 nov. 2014, 14:28

Bonjour
je commence de nouveaux graphiques pour ma page des relevés du mois et je me pose une question sur la différence de jours sur chaque mois, comment indiquer le nombre de jours réellement.
est ce dans ces lignes ? est ce automatique ?

$stop=$list[0];
$start=$stop-(86400*2);//86400=24 heures donc 86400*2=48 heures

dominique
https://www.meteo-canejan.fr/

ma config : VP2sql , Weaterlink 6.03 , NOAAtable, minimaxibis (sonde agricole), Windows 10 .

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

Re: mois avec 30, 31 ou 29 jours

Message par Météo Villarzel » 16 nov. 2014, 14:31

Salut,
si tu indiques $start=$stop-(86400*2);
ce sera toujours les dernière 48h quelque soit le nombre de jour du mois.

A+
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

muchistic
Messages : 142
Enregistré le : 17 févr. 2014, 20:20
Localisation : Canejan (33)
Contact :

Re: mois avec 30, 31 ou 29 jours

Message par muchistic » 16 nov. 2014, 14:36

oui Pierre-André, et si je met :

$stop=$list[0];
$start=$stop-(86400*30);//86400=24 heures donc 86400*30= 30 dernier jours

ce seras pour les derniers 30 jours du mois, ma question c'est comment fait on pour que le "script" reconnaisse seul les mois en 30 ou 31 jours
https://www.meteo-canejan.fr/

ma config : VP2sql , Weaterlink 6.03 , NOAAtable, minimaxibis (sonde agricole), Windows 10 .

Avatar du membre
PascalWMR
Messages : 323
Enregistré le : 16 févr. 2014, 09:28
Localisation : CONFLANS EN JARNISY (F54800)
Contact :

Re: mois avec 30, 31 ou 29 jours

Message par PascalWMR » 16 nov. 2014, 15:44

Bonjour,

il suffit de définir une variable ex $nbjm
puis de faire une boucle if elseif


if ( ((date('m', tadate)==01) || (date('m', tadate)==03) || (date('m', tadate)==05) ) || (date('m', tadate)==07)||(date('m', tadate)==08) || (date('m', tadate)==10) || (date('m', tadate)==12 ) ) { $nbjm=31}
elseif ((date('m', tadate)==04) || (date('m', tadate)==06) || (date('m', tadate)==09) ) || (date('m', tadate)==11)) {$nbjm=30}
elseif ((date('m', tadate)==02 && date('L', tadate)==1) {$nbjm=29} // année bissextile
elseif ((date('m', tadate)==02 && date('L', tadate)==0) {$nbjm=28}

ensuite, $start=$stop-(86400*$nbjm);

à vérifier quand même l'équilibre des parenthèses. :D

A+
Pascal
Station VP2Plus, Windows 10 64 bits,WeatherLink 6.0.5, VP2SQL, Graphiques Dynamiques à partir d'une BDD MySQL
Météo Conflans-en-Jarnisy
Image

muchistic
Messages : 142
Enregistré le : 17 févr. 2014, 20:20
Localisation : Canejan (33)
Contact :

Re: mois avec 30, 31 ou 29 jours

Message par muchistic » 16 nov. 2014, 16:04

merci Pascal pour cette solution qui parait si évidente pour toi et si compliqué pour mois.
d'apres ce que je comprend, la variable $nbjm vas aller chercher le bon mois. je vais essayer ça :)
je revient dire si j'y arrive

Dominique
https://www.meteo-canejan.fr/

ma config : VP2sql , Weaterlink 6.03 , NOAAtable, minimaxibis (sonde agricole), Windows 10 .

Avatar du membre
PascalWMR
Messages : 323
Enregistré le : 16 févr. 2014, 09:28
Localisation : CONFLANS EN JARNISY (F54800)
Contact :

Re: mois avec 30, 31 ou 29 jours

Message par PascalWMR » 16 nov. 2014, 16:12

Non la variable $nbjm va déterminer le nombre de jour à afficher en fonction du test de la boucle if

nb tadate est la date à tester.

En clair en français,

si (le mois de la date à tester est égal à 01 ou 03 ou 05 ou 07 o 08 ou 10 ou 12) alors $nbjm=31
sinon si (le mois de la date à tester est égal à 04 ou 06 ou 09 ou 11) alors $nbjm=30
sinon si (le mois de la date à tester est égal à 02 et que le teste 'L' de la date à tester est égal a 1) alors $nbjm=29 car c'est une année bissextile
sinon si (le mois de la date à tester est égal à 02 et que le teste 'L' de la date à tester est égal a 0) alors $nbjm=28 car c'est pas une année bissextile
Station VP2Plus, Windows 10 64 bits,WeatherLink 6.0.5, VP2SQL, Graphiques Dynamiques à partir d'une BDD MySQL
Météo Conflans-en-Jarnisy
Image

muchistic
Messages : 142
Enregistré le : 17 févr. 2014, 20:20
Localisation : Canejan (33)
Contact :

Re: mois avec 30, 31 ou 29 jours

Message par muchistic » 16 nov. 2014, 16:52

d'accord Pascal, je comprend un peu mieux, par contre une question surement "bête" mais faut t'il remplacer (date('m', tadate)==01) tadate par le mois ou un autre format.
https://www.meteo-canejan.fr/

ma config : VP2sql , Weaterlink 6.03 , NOAAtable, minimaxibis (sonde agricole), Windows 10 .

Avatar du membre
PascalWMR
Messages : 323
Enregistré le : 16 févr. 2014, 09:28
Localisation : CONFLANS EN JARNISY (F54800)
Contact :

Re: mois avec 30, 31 ou 29 jours

Message par PascalWMR » 16 nov. 2014, 17:55

Oui c'est ça.

il faut remplacer tadate par la date à tester au format tstamp ou recdateTZ.

A+
Station VP2Plus, Windows 10 64 bits,WeatherLink 6.0.5, VP2SQL, Graphiques Dynamiques à partir d'une BDD MySQL
Météo Conflans-en-Jarnisy
Image

muchistic
Messages : 142
Enregistré le : 17 févr. 2014, 20:20
Localisation : Canejan (33)
Contact :

Re: mois avec 30, 31 ou 29 jours

Message par muchistic » 16 nov. 2014, 18:05

merci beaucoup Pascal, je vais essayer de trouver le format tstamp, et il doit indiquer le début du mois ?
https://www.meteo-canejan.fr/

ma config : VP2sql , Weaterlink 6.03 , NOAAtable, minimaxibis (sonde agricole), Windows 10 .

Avatar du membre
PascalWMR
Messages : 323
Enregistré le : 16 févr. 2014, 09:28
Localisation : CONFLANS EN JARNISY (F54800)
Contact :

Re: mois avec 30, 31 ou 29 jours

Message par PascalWMR » 16 nov. 2014, 18:13

Par contre je ne vois pas bien l’intérêt de calculer le nombre de jours à afficher si tu emploie la méthode que tu évoque ci-dessous.
muchistic a écrit : $stop=$list[0];
$start=$stop-(86400*2);//86400=24 heures donc 86400*2=48 heures
Si tu part avec la variable $stop=$list[0], ce qui en clair veut dire que la date de fin est égale à la date du dernier enregistrement, je ne vois pas l'intérêt de déterminer la date de début en fonction du nombre de jour d'un mois 28,29,30,ou 31 jours.

Par contre si je devine bien ce que tu veux faire, si tu veux extraire tous les jours d'un mois donné, ça n'est pas comme cela qu'il faut s'y prender

A+
Modifié en dernier par PascalWMR le 16 nov. 2014, 18:17, modifié 1 fois.
Station VP2Plus, Windows 10 64 bits,WeatherLink 6.0.5, VP2SQL, Graphiques Dynamiques à partir d'une BDD MySQL
Météo Conflans-en-Jarnisy
Image

Répondre