Je crée une application simple réagissant sur la météo à l'aide de l'API Open Weather. J'utilise également une bibliothèque externe pour les icônes météo.
Un utilisateur entrait le nom de la ville et obtient la température actuelle avec une icône spécifique en fonction de la description. P>
Mon problème est qu'il n'ya aucun moyen dire si c'est la nuit ou la journée, ce qui serait spécifique à l'icône qui doit être affichée. P>
Je reçois que le timbre de l'heure unique des données est récupéré pour la ville, mais quand je le convertit , montre l'heure locale. Il y a aussi un décalage de fuseau horaire, mais de ma compréhension ne peut pas être converti en un nom de ville en JavaScript. J'ai vérifié pour les paquets Devrais-je passer à une autre API? Vous trouverez ci-dessous les données tirées de Londres: P> NPM code>, mais incapable d'en trouver un. Je veux pouvoir saisir la date / l'heure de la ville spécifique qui est recherchée, pas mon heure locale. P>
{coord: {â¦}, weather: Array(1), base: "stations", main: {â¦}, visibility: 10000, â¦}
base: "stations"
clouds: {all: 40}
cod: 200
coord: {lon: -0.13, lat: 51.51}
dt: 1592155233
id: 2643743
main: {temp: 71.8, feels_like: 66.69, temp_min: 71.01, temp_max: 73, pressure: 1014, â¦}
name: "London"
sys: {type: 1, id: 1414, country: "GB", sunrise: 1592106173, sunset: 1592165939}
timezone: 3600
visibility: 10000
weather: Array(1)
0: {id: 802, main: "Clouds", description: "scattered clouds", icon: "03d"}
length: 1
__proto__: Array(0)
wind: {speed: 9.17, deg: 170}
4 Réponses :
Je crois que vous pensez peut-être à cela dans ce mauvais sens.
vous em> devez interroger la météo pour les cadres de temps que vous voulez, comment signifieriez-vous quel temps demandez-vous? / p> Donc, dans votre requête Vous devez fournir la période pour laquelle vous voulez la météo et quel emplacement em>. Maintenant, si vous quittez cela, c'est toujours défaut de la période actuelle em> météo. P> pour par exemple. Votre appel devrait être celui-ci - p> Maintenant, lorsque vous obtenez votre réponse, vous pouvez associé em> it avec Ville code>
heure de date code> que vous recherchez! p> p>
Ce serait génial !! Malheureusement, mon abonnement gratuit ne fournit pas cela. Je ne veux pas payer pour créer une application simple. Merci quand même!
Ils vous ont donné un fuseau horaire:
p>
const obj = { dt: 1592155233, id: 2643743, main: { temp: 71.8, feels_like: 66.69, temp_min: 71.01, temp_max: 73, pressure: 1014, }, name: "London", sys: { type: 1, id: 1414, country: "GB", sunrise: 1592106173, sunset: 1592165939 }, timezone: 3600 } console.log(new Date(obj.dt*1000-(obj.timezone*1000))); // minus console.log(new Date(obj.dt*1000+(obj.timezone*1000))); // plus
Je crois que je viens de faire
Vous devez ajouter la valeur du fuseau horaire - pas soustraire.
Vous pouvez obtenir l'heure actuelle en utilisant le fuseau horaire code> dans les données renvoyées par l'API. La documentation Open Weather API le décrit comme suit: P>
TimeZone CODE>: Décalage en secondes de UTC LI>
ul>
J'ai compris comment obtenir le temps correct, de la ville spécifique que les données sont récupérées. Le temps ouvert affiche le fuseau horaire en secondes. Pour l'exemple, j'utiliserai d'Atlanta, ce qui sera compensé de Georgia de -14400. Voir ci-dessous:
d = new Date() localTime = d.getTime() localOffset = d.getTimezoneOffset() * 60000 utc = localTime + localOffset var atlanta = utc + (1000 * -14400) nd = new Date(atlanta) // Mon Jun 15 2020 17:07:59 GMT-0700
Sunrise code> et
Sunset code> sont des valeurs UTC et donc est
date.gettime () code> de sorte que la comparaison au coucher du soleil / le lever du soleil doit être facile à déterminer jour / nuit
Je pensais certainement cela. C'est la réponse que je cherchais. Pourriez-vous écrire cela dans une réponse afin que je puisse marquer complète?