Weather | Open-Meteo.com
{#await weatherDaily then wd} {#each wd.daily.time as time, index (index)} {@const selected = time.getDate() === selectedDay.getDate()} {#if wd.daily.temperature_2m_max.values(index) != null && !isNaN(Number(wd.daily.temperature_2m_max .values(index)! .toFixed(1)))} {/if} {/each} {:catch error}

{error.message}

{/await}

{selectedDay.toLocaleDateString('en-GB', { weekday: 'long' })} {selectedDay.getDate() === new Date(today.getTime() - 24 * 60 * 60 * 1000).getDate() ? ' (Yesterday)' : ''} {selectedDay.getDate() === today.getDate() ? ' (Today)' : ''} {selectedDay.getDate() === new Date(today.getTime() + 24 * 60 * 60 * 1000).getDate() ? ' (Tomorrow)' : ''}

{#await weather then weather} {#each weather.indexes as index, j (j)} {/each} {#each weather.indexes as index, j (j)} {@const now = weather.hourlyTime[index].getDate() === today.getDate() && weather.hourlyTime[index].getHours() === today.getHours()} {/each} {#each weather.indexes as index, j (j)} {@const temp = weather.entries?.[0]?.values?.[index]} {#if temp !== undefined && !isNaN(temp)} {/if} {/each} {#each weather.entries as entry, i (i)} {#each weather.indexes as index, j (j)} {#if entry.values && !isNaN(entry.values[index])} {/if} {/each} {/each} {#if winddir} {#each weather.indexes as index, j (j)} {#if weather.windDirections && !isNaN(weather.windDirections[index])} {/if} {/each} {/if} {/await}
Weather Week {location.name}
Time{weather.hourlyTime[index].getHours() < 10 ? '0' : ''}{weather.hourlyTime[ index ].getHours()}
Icons
Temp graph{temp?.toFixed(0)}
{entry.title}{entry.name === 'precipitation' || entry.name === 'temperature_2m' ? entry.values![index].toFixed(1) : entry.values![index]}
Wind Dir.
{#await weatherDaily then wd} {@const sunrise = new Date(Number(wd.daily.sunrise.valuesInt64(selectedDayIndex)) * 1000)} {@const sunset = new Date(Number(wd.daily.sunset.valuesInt64(selectedDayIndex)) * 1000)}
Sunrise: {pad(sunrise.getHours())}:{pad(sunrise.getMinutes())}
Sunset: {pad(sunset.getHours())}:{pad(sunset.getMinutes())}
{/await}
{#if params.models && params.models.length > 0} {@const modelValue = params.models[0]} { if (params.models && val) { params.models = [val]; } }} > {modelSelected?.label} {#each models as mo (mo.value)} {mo.label} {/each} {/if}