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

Langage PHP Discussion :

heures du lever/coucher du soleil pour un lieu donné [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Membre actif Avatar de elcoyotos
    Homme Profil pro
    Amateur passionné
    Inscrit en
    Octobre 2006
    Messages
    490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Amateur passionné

    Informations forums :
    Inscription : Octobre 2006
    Messages : 490
    Points : 294
    Points
    294
    Par défaut heures du lever/coucher du soleil pour un lieu donné
    Bonjour,

    Comme indiqué, je cherche à indiquer les heures du lever/coucher du soleil pour un lieu donné.

    J'ai commencé par ça :

    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
     
    // Phoenix
    date_default_timezone_set('America/Phoenix'); 
    $target_time_zone = new DateTimeZone('America/Phoenix');
    $kolkata_date_time = new DateTime('now', $target_time_zone); // GMT
    $resultat_Phoenix = $kolkata_date_time->format('P');
     
     
    echo '<p>'.date("D M d Y"). ', Lever Phoenix : ' .date_sunrise(time(), SUNFUNCS_RET_STRING, 33.4514, -112.0738, 90, $resultat_Phoenix).'<br>
    Résultat sur <a href="https://www.google.fr/search?q=lever+soleil+phoenix+az&ie=utf-8" target="_blank">Google</a><br>
    Résultat sur <a href="http://www.sunrise-and-sunset.com/fr/sun/etats-unis/phoenix__az" target="_blank">sunrise-and-sunset.com</a></p>';
     
    echo '<p>'.date("D M d Y"). ', Coucher  Phoenix : ' .date_sunset(time(), SUNFUNCS_RET_STRING, 33.4514, -112.0738, 90, $resultat_Phoenix).'<br>
    Résultat sur <a href="https://www.google.fr/search?q=coucher+soleil+phoenix&ie=utf-8" target="_blank">Google</a><br>
    Résultat sur <a href="http://www.sunrise-and-sunset.com/fr/sun/etats-unis/phoenix__az" target="_blank">sunrise-and-sunset.com</a></p>';
    Ce qui est correcte et qui donne comme résultat pour le mercredi 15/02/2017 :
    1. Lever 07:13
    2. Coucher 18:11


    Ou cela se complique, c'est qu'avec d'autres lieux, cela ne fonctionne pas.

    Exemples :

    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
     
    // Sedona
    date_default_timezone_set('America/Phoenix'); 
    $target_time_zone = new DateTimeZone('America/Phoenix');
    $kolkata_date_time = new DateTime('now', $target_time_zone); // GMT
    $resultat_Sedona = $kolkata_date_time->format('P');
     
     
    echo '<p>'.date("D M d Y"). ', Lever Sedona : ' .date_sunrise($time, SUNFUNCS_RET_STRING, 34.854, -111.7951, 90, $resultat_Sedona).'</p>';
    echo '<p>'.date("D M d Y"). ', Coucher  Sedona : ' .date_sunset($time, SUNFUNCS_RET_STRING, 34.854, -111.7951, 90, $resultat_Sedona).'<br>
    Résultat sur <a href="http://www.sunrise-and-sunset.com/fr/sun/etats-unis/sedona" target="_blank">sunrise-and-sunset.com</a></p>';
     
    // Los Angeles
    date_default_timezone_set('America/Los_Angeles'); 
    $target_time_zone = new DateTimeZone('America/Los_Angeles');
    $kolkata_date_time = new DateTime('now', $target_time_zone); // GMT
    $resultat_Los_Angeles = $kolkata_date_time->format('P');
     
    echo '<p>'.date("D M d Y"). ', Lever LOS ANGELES : ' .date_sunrise($time, SUNFUNCS_RET_STRING, 34.3, -118.14, 90, $resultat_Los_Angeles).'<br>
    Résultat sur <a href="https://www.google.fr/search?q=lever+soleil+los+angeles&ie=utf-8" target="_blank">Google</a><br>
    Résultat sur <a href="http://www.sunrise-and-sunset.com/fr/sun/etats-unis/los-angeles" target="_blank">sunrise-and-sunset.com</a></p>';
    echo '<p>'.date("D M d Y"). ', Coucher  LOS ANGELES : ' .date_sunset($time, SUNFUNCS_RET_STRING, 34.3, -118.14, 90, $resultat_Los_Angeles).'<br>
    Résultat sur <a href="https://www.google.fr/search?q=coucher+soleil+los+angeles&ie=utf-8" target="_blank">Google</a><br>
    Résultat sur <a href="http://www.sunrise-and-sunset.com/fr/sun/etats-unis/los-angeles" target="_blank">sunrise-and-sunset.com</a></p>';
    Ce qui n'estpas correcte et qui donne comme résultat pour le mercredi 15/02/2017 :

    Pour Sedona

    1. Lever 07:38 alors que le bon résultat est 07:13
    2. Coucher 17:23 alors que le bon résultat est 18:09


    Idem pour Los Angeles :

    1. Lever 07:01 alors que le bon résultat est 06:38
    2. Coucher 16:50 alors que le bon résultat est 17:36


    Quelqu'un pourrait-il m'expliquer pourquoi cela fonctionne dans le premier exemple avec Phoenix et pas dans le second avec Sedona (poutant en Arizona comme Phoenix) et Los Angeles ?

    Merci d'avance à ceux qui prendront le temps de me répondre
    Écoute, sinon ta langue te perdra (proverbe Navajo)

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Le décalage GMT doit être indiqué en nombre d'heures. Si tu affiches bien toutes les erreurs, ton code en provoque.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $resultat_Sedona = $kolkata_date_time->format('O');
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre actif Avatar de elcoyotos
    Homme Profil pro
    Amateur passionné
    Inscrit en
    Octobre 2006
    Messages
    490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Amateur passionné

    Informations forums :
    Inscription : Octobre 2006
    Messages : 490
    Points : 294
    Points
    294
    Par défaut
    Merci pour ta réponse mais cela ne change rien aux résultats. Ils sont faux.

    Avec ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $resultat_Sedona = $kolkata_date_time->format('O');
    Pour Sedona


    1. Lever 10:38 alors que le bon résultat est 07:13
    2. Coucher 20:23 alors que le bon résultat est 18:09



    J'ai aussi essayer en seconde :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $resultat_Sedona = $kolkata_date_time->format('Z');
    $resultat_Sedona = $resultat_Sedona / 3600;

    1. Lever 07:38 alors que le bon résultat est 07:13
    2. Coucher 17:23 alors que le bon résultat est 18:09
    Écoute, sinon ta langue te perdra (proverbe Navajo)

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Moi j'obtiens

    Wed Feb 15 2017, Lever Sedona : 07:14
    Wed Feb 15 2017, Coucher Sedona : 18:08

    Tu es sûr de ton $time ? Parce ce que 07:38 c'est que j'obtiens si $time vaut 0. (encore une fois tu devrais bien activer toutes les erreurs)
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre actif Avatar de elcoyotos
    Homme Profil pro
    Amateur passionné
    Inscrit en
    Octobre 2006
    Messages
    490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Amateur passionné

    Informations forums :
    Inscription : Octobre 2006
    Messages : 490
    Points : 294
    Points
    294
    Par défaut
    Merci Sabotage !

    Une erreur de débutant !

    $time n'était pas déclaré

    Par contre, j'ai beau mettre .....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ini_set('display_errors',1);
    error_reporting(e_all);
    .... dans mon fichier, je n'ai aucune erreur à l'écran ....
    Écoute, sinon ta langue te perdra (proverbe Navajo)

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    C'est E_ALL en majuscules
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre actif Avatar de elcoyotos
    Homme Profil pro
    Amateur passionné
    Inscrit en
    Octobre 2006
    Messages
    490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Amateur passionné

    Informations forums :
    Inscription : Octobre 2006
    Messages : 490
    Points : 294
    Points
    294
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    error_reporting(E_MERCI);
    Écoute, sinon ta langue te perdra (proverbe Navajo)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Calcul des heures de lever/coucher du soleil
    Par #define dans le forum C#
    Réponses: 2
    Dernier message: 06/01/2016, 15h43
  2. Lever de soleil-Coucher de soleil
    Par mesbec dans le forum Général Java
    Réponses: 1
    Dernier message: 24/05/2013, 14h33
  3. Calcule lever coucher lunaire en PHP
    Par la_chouette dans le forum Langage
    Réponses: 9
    Dernier message: 16/04/2011, 17h41
  4. cherche module ou langage pour récupérer des données audio..
    Par Ry_Yo dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 12/05/2003, 17h44
  5. [Formule] Lever et coucher du soleil
    Par psl dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 21/10/2002, 16h37

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