Скрипт които да показва часа на изгрев и залез на слънцето.

VoodooNet

Registered
Търся скрипт които да показва часа на изгрев и залез на слънцето.
по възможност да смята вярно тъй като до сега не намерих вярно смятащ скрипт.

Тествах с това:

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

}

?>
 

Back
Горе