Страница 1 из 6
[Сценарий] Вычисляем восход и заход солнца
Добавлено: Ср апр 15, 2015 2:44 pm
Amarok
Сценарий
CalcSunSetRise (Вычисление восхода и захода солнца v1.1):
Код: Выделить всё
$lat=gg('ThisComputer.latitude'); // широта
$long=gg('ThisComputer.longitude'); // долгота
$sun_info = date_sun_info(time(), $lat, $long);
foreach ($sun_info as $key => $val) {
if ($key == 'sunrise') {
$sunrise = $val;
sg('ThisComputer.SunRise',date("H:i", $sunrise));
}
if ($key == 'sunset') {
$sunset = $val;
$day_length = $sunset - $sunrise;
sg('ThisComputer.SunSet',date("H:i", $sunset));
}
}
Re: Вычисляем восход и заход солнца
Добавлено: Ср апр 15, 2015 2:46 pm
LutsenkoDenis
в php вроде была встроенная функция, которая время восхода и заката вычисляет
Re: Вычисляем восход и заход солнца
Добавлено: Ср апр 15, 2015 2:49 pm
Amarok
LutsenkoDenis писал(а):в php вроде была встроенная функция, которая время восхода и заката вычисляет
Дык чой-т она у меня криво тогда работала. Потому и пользую это чудище)
Re: Вычисляем восход и заход солнца
Добавлено: Ср апр 15, 2015 7:05 pm
adzam
Я использую такой попроще:
$sun_info = date_sun_info(time(), 46.984, 28.8358);
foreach ($sun_info as $key => $val) {
if ($key == 'sunrise') {
$sunrise = $val;
echo 'Восход: '.date("H:i:s", $sunrise).'<br>';
setGlobal('Chisinau.SunRise',date("H:i:s", $sunrise));
}
if ($key == 'sunset') {
$sunset = $val;
$day_length = $sunset - $sunrise;
echo 'Заход: '.date("H:i", $sunset).'<br>';
echo 'Долгота дня: '.gmdate("H:i", $day_length).'<br>';
setGlobal('Chisinau.SunSet',date("H:i:s", $sunset));
setGlobal('Chisinau.LongTag',gmdate("H:i:s", $day_length));
}
if ($key == 'transit') {
echo 'В зените: '.date("H:i:s", $val).'<br>';
setGlobal('Chisinau.Transit',date("H:i:s", $val));
}
if ($key == 'civil_twilight_begin') {
echo 'Начало утренних сумерек: '.date("H:i:s", $val).'<br>';
setGlobal('Chisinau.civil_begin',date("H:i:s", $val));
}
if ($key == 'civil_twilight_end') {
echo 'Конец вечерних сумерек: '.date("H:i:s", $val).'<br>';
setGlobal('Chisinau.civil_end',date("H:i:s", $val));
}
}
и запускаю раз в сутки в 0.00
Re: Вычисляем восход и заход солнца
Добавлено: Чт апр 16, 2015 8:12 am
Amarok
А есть еще проще?
Re: Вычисляем восход и заход солнца
Добавлено: Чт апр 16, 2015 11:45 am
adzam
Не встречал
Re: Вычисляем восход и заход солнца
Добавлено: Чт апр 16, 2015 4:04 pm
LutsenkoDenis
adzam писал(а):Я использую такой попроще:....
Да,
date_sun_info - это как раз та самая встроенная в php функция которая рассчитывает восход, закат и т.д.
И на счёт проще... проще уже точно некуда
p.s. В приложении OpenWeather я эту функцию тоже использую для получения данных на сегодня и несколько дней вперед.
Re: Вычисляем восход и заход солнца
Добавлено: Чт апр 16, 2015 5:37 pm
LutsenkoDenis
Код: Выделить всё
echo 'Восход: '.date("H:i:s", $sunrise).'<br />'; // с секундами
echo 'Восход: '.date("H:i", $sunrise).'<br>'; // без секунд
или про какой код идет речь? и в переменной что? стока или дата?
Re: Вычисляем восход и заход солнца
Добавлено: Чт апр 16, 2015 5:51 pm
Amarok
Всё, нашел).
Код: Выделить всё
$lat=gg('ThisComputer.latitude'); // широта
$long=gg('ThisComputer.longitude'); // долгота
$sun_info = date_sun_info(time(), $lat, $long);
foreach ($sun_info as $key => $val) {
if ($key == 'sunrise') {
$sunrise = $val;
echo 'Восход: '.date("H:i", $sunrise).'<br>';
setGlobal('ThisComputer.SunRise',date("H:i", $sunrise));
}
if ($key == 'sunset') {
$sunset = $val;
$day_length = $sunset - $sunrise;
echo 'Заход: '.date("H:i", $sunset).'<br>';
echo 'Долгота дня: '.gmdate("H:i", $day_length).'<br>';
setGlobal('ThisComputer.SunSet',date("H:i", $sunset));
//setGlobal('ThisComputer.LongTag',gmdate("H:i", $day_length));
}
if ($key == 'transit') {
echo 'В зените: '.date("H:i", $val).'<br>';
//setGlobal('ThisComputer.Transit',date("H:i", $val));
}
if ($key == 'civil_twilight_begin') {
echo 'Начало утренних сумерек: '.date("H:i", $val).'<br>';
//setGlobal('ThisComputer.civil_begin',date("H:i:s", $val));
}
if ($key == 'civil_twilight_end') {
echo 'Конец вечерних сумерек: '.date("H:i", $val).'<br>';
//setGlobal('ThisComputer.civil_end',date("H:i", $val));
}
}
Re: Вычисляем восход и заход солнца
Добавлено: Чт апр 16, 2015 6:52 pm
adzam
Время показывает