Страница 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
Время показывает