Търся скрипт които да показва часа на изгрев и залез на слънцето.
по възможност да смята вярно тъй като до сега не намерих вярно смятащ скрипт.
Тествах с това:
по възможност да смята вярно тъй като до сега не намерих вярно смятащ скрипт.
Тествах с това:
PHP:
<?php
###############
# настройки #
###############
// Задай времевата зона според твоето място, понеже някои сървъри имат различни времеви зони не отговарящи на локацията
$myTZ = 'Europe/Sofia'; // Pacific Time
$time_format = 'H:i'; // 08:53
// Задай географската ширина и дължина за вашето местоположение
$latitude = 43.40364122366225; //North - Север
$longitude = 24.632889924697906; //West - Запад
// uncomment one zenith setting: http://en.wikipedia.org/wiki/Twilight
$zenith = 90+(50/60); // True sunrise/sunset
//$zenith = 96; // Civilian Twilight - Conventionally used to signify twilight
//$zenith = 102; // Nautical Twilight - the point at which the horizon stops being visible at sea.
//$zenith = 108; // Astronomical Twilight - the point when Sun stops being a source of any illumination.
$verbose = false; // print debugging info, settings and variables for testing
###############
# код #
###############
// Set timezone in PHP5/PHP4 manner
if (!function_exists('date_default_timezone_set')) {
putenv("TZ=" . $myTZ);
} else {
date_default_timezone_set("$myTZ");
}
// find time offset in hours
$tzoffset = date("Z")/60 / 60;
// determine if it is 'night' or 'day'
$dayornight = day_or_night();
// determine sunrise time
$sunrise = date_sunrise(time(), SUNFUNCS_RET_STRING, $latitude, $longitude, $zenith, $tzoffset);
$sunrise_time = date($time_format, strtotime(date("Y-m-d") . ' '. $sunrise));
// determine sunset time
$sunset = date_sunset(time(), SUNFUNCS_RET_STRING, $latitude, $longitude, $zenith, $tzoffset);
$sunset_time = date($time_format, strtotime(date("Y-m-d") . ' '. $sunset));
// this prints the program output, you can modify to fit your needs
if($dayornight == 'night') {
// it is night
echo "Слънцето изгрява в: $sunrise_time ч. и ";
echo "залязва в: $sunset_time ч.<br />";
}else{
// it is day
echo "Слънцето изгрява в: $sunrise_time ч. и ";
echo "залязва в: $sunset_time ч.<br />";
}
// print debugging info, settings and variables for testing
if ($verbose) {
echo '<h3>Settings and Variables:</h3><pre>';
echo 'Current PHP version: ' . phpversion() . "\n";
echo date("M d Y h:i:s A T") . " (server time)\n";
echo gmdate("M d Y h:i:s A T") . " (GMT time)\n\n";
echo 'myTZ = ' . $myTZ . "\n";
echo 'tzoffset = ' . $tzoffset . "\n";
echo 'lat = ' . $latitude . "\n";
echo 'long = ' . $longitude . "\n";
echo 'Zenith = ' . $zenith . "\n\n";
echo 'Day or Night: '. $dayornight . "\n";
echo 'Sunrise will occur at '. $sunrise_time . "\n";
echo 'Sunset will occur at '. $sunset_time . "\n";
echo '</pre>';
}
function day_or_night() {
// determine if it is 'night' or 'day'
// returns string: 'night' or 'day'
global $latitude, $longitude, $tzoffset, $zenith;
$sunrise_epoch = date_sunrise(time(), SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude, $zenith, $tzoffset);
$sunset_epoch = date_sunset(time(), SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude, $zenith, $tzoffset);
$time_epoch = time(); // time now
if ($time_epoch >= $sunset_epoch or $time_epoch <= $sunrise_epoch) {
return 'night';
} else {
return 'day';
}
}
?>