Autor | Zpráva | ||
---|---|---|---|
jirka2 Profil |
#1 · Zasláno: 13. 3. 2025, 16:29:24
Ahoj,
narazil jsem na zajímavý problém. Pracuji s výpočtem východu a západu Slunce pomocí funkce date_sun_info(), Tento primitivní program 1<pre> <pre>
<?php
date_default_timezone_set("UTC");
$sun_info = date_sun_info(strtotime("2025-03-13"), 51.48, 0.0);
foreach ($sun_info as $key => $val) {
if ($val === true)
echo "{$key}: ++++\n";
elseif ($val === false)
echo "{$key}: -----\n";
else
echo "{$key}: " . date("H:i:s", $val) . "\n";
} 1sunrise: 06:17:33 sunrise: 06:17:33
sunset: 18:01:13
transit: 12:09:23
civil_twilight_begin: 05:44:28
civil_twilight_end: 18:34:18
nautical_twilight_begin: 05:05:36
nautical_twilight_end: 19:13:09
astronomical_twilight_begin: 04:25:40
astronomical_twilight_end: 19:53:05 1sunrise: 06:15:56 sunrise: 06:15:56
sunset: 18:02:49
transit: 12:09:23
civil_twilight_begin: 05:44:28
civil_twilight_end: 18:34:18
nautical_twilight_begin: 05:05:36
nautical_twilight_end: 19:13:09
astronomical_twilight_begin: 04:25:40
astronomical_twilight_end: 19:53:05 |
||
Keeehi Profil |
#2 · Zasláno: 14. 3. 2025, 13:21:43
V dokumentaci je popsaná změna mezi 7.1 a 7.2. Bohužel proběhla změna i mezi 7.4 a 8.0, ta v dokumentaci zmíněná není. Tudíž ty nic neděláš špatně, jen se změnil kód.
Změna je ve čtvrtém parametru. 7.4 8.0 Pokud bys chtěl ve verzi 8.0 získat stejné chování jako v 7.4, mělo by to jít pomocí funkce date_sunset kde si můžeš zenith nastavit. Ale od 8.1 je označená za deprecated takže je otázka, na jak dlouho by to bylo. |
||
jirka2 Profil |
#3 · Zasláno: 14. 3. 2025, 14:11:56
Keeehi:
Velice děkuji za reakci, tento rozdíl jsem přehlédl. Ale teď je to v PHP 8 chybně. V PHP 7.4 se funkce volala rs = timelib_astro_rise_set_altitude(t, longitude, latitude, -35.0/60, 1, &ddummy, &ddummy, &rise, &set, &transit) rs = timelib_astro_rise_set_altitude(t, longitude, latitude, -35.0/60, 1, &ddummy, &ddummy, &rise, &set, &transit) V PHP 8 se funkce volá rs = timelib_astro_rise_set_altitude(t, longitude, latitude, -50.0/60, 1, &ddummy, &ddummy, &rise, &set, &transit); rs = timelib_astro_rise_set_altitude(t, longitude, latitude, -50.0/60, 1, &ddummy, &ddummy, &rise, &set, &transit); Jak to, že si toho doposud nikdo nevšiml... Každopádně ještě jednou děkuji za pomoc, zdraví Jirka |
||
Keeehi Profil |
#4 · Zasláno: 15. 3. 2025, 00:20:56
jirka2:
„Jak to, že si toho doposud nikdo nevšiml“ Mám takový pocit, že tohle nebude zrovna moc užívaná funkce a těm co ji používají asi stačila přibližná přesnost a nevšimli si toho. Já bych to například nepoznal. Takže si zřejmě nikdo nevšiml. Možná by stálo za to to nahlásit jako bug. Jediné issue co by to "řešilo" je tohle. Pokud by sis mohl zadat vlastní úhel, dalo by se to posunout o tu chybu co tam mají a dostat správný výsledek. Ale to je jen obcházení problémů. Předpokládám, že to co jsi v kódu našel je opravdu chyba. Já tomuto tématu nerozumím a jestli se má opravdu někde něco přičíst odečíst a nebo ne, to nedokážu posoudit. Vypadáto, že o tomto tématu ty víš více. |
||
Časová prodleva: 9 dní
|
0