Данни за изгрев и залез на слънцето и евентуално луната.

VoodooNet

Registered
Моля за съдеиствие за код които по зададени кординати на даден град да показва в колко изгрява и залязва слънцето.
( Например: Слънцето изгрява в 06:32мин и залязва в 21:40мин )
Мисля да се ползва град в централна България за позиция за да е горе долу по средата на страната "Велико Търново" например....

Код:
PHP:
<?php

/* calculate the sunset time for Lisbon, Portugal
Latitude: 38.4 North
Longitude: 9 West
Zenith ~= 90
offset: +1 GMT
*/

echo date("D M d Y") ' - Слънцето изгрява в : ' .date_sunrise(time(), SUNFUNCS_RET_STRING, 38.4, -9, 90, 2) ', и залязва в : ' .date_sunset(time(), SUNFUNCS_RET_STRING, 38.4, -9, 90, 2);

?>

( Това е кода с които пробвам. Дава грешка ,а и кординатите не съм задал правилно във Велико Търново да бъдат )

Код 2 - работещ:
PHP:
<?php
//$myTZ = 'America/Phoenix';  // Mountain Standard Time - Arizona

$myTZ = 'Europe/Sofia';  // Pacific Time

$time_format = 'H:i'; // 08:53 PM PDT

// Set the latitude and longitude for your location

$latitude  = 43.09; //North
$longitude = 25.63; //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

###############
# end settings
###############

// 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';
   }

}

?>

( Има 2/3 мин разлика при справка с други сайтове )

Ако някои знае как да го оправя моля да помага :)
 
това са координатите на Велико Търново :

Код:
$latitude  = 43.08980614447531; //North
$longitude = 25.620925703796388; //West

опитах със Северна Америка и с него работи ..

Код:
$latitude  = -15.762050128916814; //North
$longitude = -58.054382523742674; //West


какъв по-точно е проблема ?
 
С кординатите:

Слънцето изгрява в: 05:37 ч. и залязва в: 20:54 ч.

От други сайтове:

05:39 20:53


Не го показва точно...
 

Back
Горе