Hallo Brownson,
ich versuche seit einiger Zeit die Grafik Deines Moduls mit HighCharts darzustellen. Mit Hilfe von Raketenschnecke bin ich auch schon ziemlich weit gekommen.
Was mache ich:
Ich schreibe die Daten der Sonnen-Auf und Untergänge sowie die Anfänge und Enden der versch. Dämmerungszeiten in eine MySQL-DB.
Funktioniert soweit auch.
Nur die mit Deiner (und die die ich von anderen gefunden habe) Funktion für die Ermittlung des Astronomischen SonnenAufgangs (Untergang ist selbes Problem) bekomme ich zwischen dem 7.6. und dem 3/5.7. immer Null/"", was mir dann den Chart komplett verkorkst.
Da ichs nicht wirklich blick, meine Bitte, mir auf die Sprünge zu helfen wie ich die Daten in diesen Zeiträumen generieren muss um nacher eine so tolle Grafik in HC zu generieren wie in Deinem Modul.
Anbei das Script wie ich die Daten schreibe.
<?
// Infos zum Parameter Zenit: http://de.wikipedia.org/wiki/D%C3%A4mmerung
// Schreibt die kompletten Daten für ein Jahr in eine Tabelle
//Startdatum
$Jahr = "2012";
$Monat = "1";
$Tag = "1";
// Geographische Daten Mühlacker
$longitude = "8.841"; // Longitude (geografische Länge)
$latitude = "48.933355"; // Latitude (geografische Breite)
$offsetgmt = (date("Z")/3600); // Offset zur GMT in Stunden
// MySQL Daten
$MySQLConn=mysql_connect($MySQLIP.$MySQLPort, $MySQLAdmin, $MySQLAdminPW);
$db = $IPS_DB;
$SQLTable = $TBL_Wetter_Daemmerung;
//berechnen Tage im Jahr: Berechnen Tage im Februar
$TagFeb = cal_days_in_month(CAL_GREGORIAN, 2, $Jahr);
//echo "Der Februar " .$Jahr. " hat " .$TagFeb. " Tage"."
";
If ($TagFeb == 28)
{$TageImJahr = "365";}
elseif ($TagFeb == 29)
{$TageImJahr = '366';}
if (!$MySQLConn)
{IPS_LogMessage('SunRiseSet_For1Year', 'error= '. mysql_error());}
$db_selected = mysql_select_db($db, $MySQLConn);
if (!$db_selected)
{IPS_LogMessage('SunRiseSet_For1Year', 'opendb= '. mysql_error());}
//echo "Das Jahr " .$Jahr. " hat " .$TageImJahr." Tage
";
//MySQL Tabelle löschen
$sql_drop_table = mysql_query("DROP TABLE ". $SQLTable . ";"); //$sql = "DROP TABLE tutorials_tbl";
if($sql_drop_table)
{print_r("Tabelle gelöscht
");}
else
{print_r("Tabelle nicht gelöscht
");}
//MySQL Tabelle erstellen
$sql_create_Table = mysql_query("CREATE TABLE " . $SQLTable . "(
id INT NOT NULL AUTO_INCREMENT ,
DateX INT NULL ,
SunRise INT NULL ,
SunRiseCivil INT NULL ,
SunRiseNautic INT NULL ,
SunRiseAstro INT NULL ,
SunSet INT NULL ,
SunSetCivil INT NULL ,
SunSetNautic INT NULL ,
SunSetAstro INT NULL ,
TimeStamp TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
PRIMARY KEY (id));")
OR die("'".$sql_create_Table."':".mysql_error());
if($sql_drop_table)
{print_r("Tabelle erstellt
");}
else
{print_r("Tabelle nicht erstellt
");}
// zum Test nur ein Monat
//for($i = 1; $i<=2; $i++)
// Für alle Daten im Jahr
for($i = 1; $i<=$TageImJahr; $i++)
{
//echo Date('Y-m-d',mktime(0,0,0,$Monat,$Tag-1+$i,$Jahr))."
";
$DateX = mktime(0,0,0,$Monat,$Tag-1+$i,$Jahr);
//print_r($DateX."
");
$DateX2 = Date('Y.m.d H:m',$DateX);
//print_r($DateX2."
");
// Datum Zenit GMT Offset
$SunRise = date_sunrise($DateX, SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude, 90+50/60, date("O")/100);
$SunSet = date_sunset ($DateX, SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude, 90+50/60, date("O")/100);
$SunRiseCivil = date_sunrise($DateX, SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude, 96, date("O")/100);
$SunSetCivil = date_sunset ($DateX, SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude, 96, date("O")/100);
$SunRiseNautic = date_sunrise($DateX, SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude, 102, date("O")/100);
$SunsetNautic = date_sunset ($DateX, SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude, 102, date("O")/100);
$SunRiseAstro = date_sunrise($DateX, SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude, 108, date("O")/100);
$SunSetAstro = date_sunset ($DateX, SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude, 108, date("O")/100);
//print_r ($DateX2."
".date('Y.m.d H:m',$SunRiseAstro)."
");
//------------------------------------------------------------------------------
/* print_r("DateX " . $DateX."
");
print_r("DateX human " . Date('d.m.Y H:i',$DateX)."
");
print_r("Sunrise " . $SunRise ."
");
print_r("Sunrise korrigiert " . ($SunRise-$DateX-3600) . "
");
print_r("Sunrise korrigiert human " . Date('d.m.Y H:i',($SunRise-$DateX-3600)));
print_r($SunRiseCivil."
");
print_r($SunRiseNautic."
");
print_r($SunRiseAstro."
");
*/ print_r($SunSetAstro."
".date("d.m.Y H:i",$SunSetAstro)."
");
/* print_r($SunSet."
");
print_r($SunSetCivil."
");
print_r($SunsetNautic."
");
print_r($SunSetAstro."
");
*/
$sql_insert = mysql_query("INSERT INTO ".$SQLTable." (DateX, SunRise, SunRiseCivil, SunRiseNautic, SunRiseAstro, SunSet, SunSetCivil,
SunSetNautic, SunSetAstro)
VALUES ("
."'".$DateX."'".", "
."'".$SunRise."'".", "
."'".$SunRiseCivil."'".", "
."'".$SunRiseNautic."'".", "
."'".$SunRiseAstro."'".", "
."'".$SunSet."'".", "
."'".$SunSetCivil."'".", "
."'".$SunsetNautic."'".", "
."'".$SunSetAstro."'".");")
OR die("'".$sql_Insert."':".mysql_error());
}
if($sql_insert)
{print_r("Daten gespeichert
");}
else
{print_r("Daten nicht gespeichert
");}
//Verbindung beenden
mysql_close($MySQLConn);
?>
Und das relevante Ergebnis aus print_r($SunSetAstro."
„.date(„d.m.Y H:i“,$SunSetAstro).“
");
1339024325
07.06.2012 01:12
01.01.1970 01:00
.
.
.
.
01.01.1970 01:00
01.01.1970 01:00
1341443996
05.07.2012 01:19
1341529813
Wenn Informationen Fehlen bitte erst fragen.
Danke für Deine/Eure Hilfe,