Countdown mit variablen Zeiten

Heermanus

Grünschnabel
Hallo zusammen,

ich bin neu bei Euch und bin beim Surfen durchs Web auf dieses Forum gestoßen, ich suche mir nämlich seit Tagen die Finger wund - oder die Augen? :) - und finde nicht GENAU das was ich mir vorstelle...

Mein Problem: Ich suche ein script in PHP oder Java (weil das die einzigen "Sprachen" sind die ich als Laie selbsttätig in meine hp einbauen kann :() das:

Jeden Tag die Stunden und Minuten bis zum Sonnenuntergang 'runterzählt.

Ich möchte natürlich nicht jeden Tag den exakten Zeitpunkt des Untergangs manuel eingeben...

Jetzt die Frage: ein script für den Countdown ist ja kein Problem, aber wie frage ich - und wo - die aktuellen Zeit für den Untergang ab und wie füge ich die in das script ein?

Vielleicht hat ja jemand von euch die "zündende" Idee?
 
Vielen Dank für die Antwort und das script, auf der Seite war ich auch - allerdings mit der falschen SuFu :-(

Die Variabel für den Zeitpunkt ist doch die:
. date_sunset(time(), SUNFUNCS_RET_STRING, 48.25, 11.57, 90, date("O")/100) . Oder?

Wie bekomme ich denn aus dieser Zeichenfolge meine Stunden und Minuten die ich brauche um sie in mein Countdown-script einzufügen?
 
Es ist ja ein String mit Stunden:Minuten
Entweder splitest du, oder zählst die Zeichen von Anfang an ab.
Daraus kannst du Timestamp machen.

PHP:
    $sunsetString = date_sunset(time(), SUNFUNCS_RET_STRING, 48.25, 11.57, 90, date("O")/100) ;
    $sunsetParts = explode(':', $sunsetString);
    //Index 0 sind die Stunden, Index 1 sind die Minuten
    $sunsetTimeStamp = mktime($sunsetParts[0], $sunsetParts[1], 0);
    var_dump(getdate($sunsetTimeStamp));
 
Ich glaube jetzt bin ich an dem Punkt wo meine - zugegebenermaßen verdammt wenigen - php Kenntnisse völlig den Geist aufgeben...

Will sagen: ich versteh nix :-(
 
Ich hab da mal ein Beispiel gemacht wie man die Zeit bis zum nächsten Sonnenauf/untergang berechnen kann
PHP Zeit bis zum Sonnenauf/untergang

PHP:
<?php 
//Definieren aller Parameters
define('C_LATITUDE', 48.25);
define('C_LANGITUDE', 48.25);
define('C_ZENIT', 90);
define('C_GMTOFFSET', 2); 
define('C_FUNC_SUNRISE', 'date_sunrise');
define('C_FUNC_SUNSET', 'date_sunset');

//Sonnenaufgang heute
$sunriseToday = getSunTime(C_FUNC_SUNRISE);
//Sonnenuntergang heute
$sunsetToday = getSunTime(C_FUNC_SUNSET);
//Prüfen ob Jetzt der Sonnenaufgang noch nicht vorbei ist (Jetzt ist vor Sonnenaufgang)
if($sunriseToday['diffSec'] >= 0){
    echo "es geht nocht {$sunriseToday['hours']} Stunden und {$sunriseToday['minutes']} Minuten bis zum Sonnenaufgang";
//Ansonsten prüfen ob der Sonnenuntergang noch nicht vorbei ist (Jetzt ist nach Sonnenaufganeg, jedoch vor Sonnenuntergang)
}elseif($sunsetToday['diffSec'] >= 0){
    echo "es geht nocht {$sunsetToday['hours']} Stunden und {$sunsetToday['minutes']} Minuten bis zum Sonnenuntergang";
//Ansonsten mit dem Sonnenaufganeg von Morgen rechnen (Jetzt ist nach Sonnenuntergang)        
}else{
    //Sonnenaufgang morgen
    $sunriseTomorrow = getSunTime(C_FUNC_SUNRISE, strtotime('+1 day'));
    echo "es geht nocht {$sunriseTomorrow['hours']} Stunden und {$sunriseTomorrow['minutes']} Minuten bis zum Sonnenaufgang (Morgen)";        
}

/**
 * Berechnet die verschiedenen Elemente Rund um die Differenz von Jetzt und dem Wert 
 * der Funktionen date_sunrise und date_sunset
 * @param   String      $function   Name der Funktion. C_FUNC_SUNRISE oder C_FUNC_SUNSET
 * @param   Timestamp   $time       Timestamp für den Tag an dem die Berechnung stattfinden soll
 * @return  Array                   Alle Informationen sie gebaucht werden
 *          "timestamp"             UnixTimeStamp des Sonnenauf/untergangs
 *          "diffSec"               Differenz des timestamps zu jetzt
 *          "hours"                 Der Stundenanteil der Differenz
 *          "minutes"               Der Minutenanteil der Differenz
 *          "seconds"               Der Sekundenanteil der Differenz
 */    
function getSunTime($function = C_FUNC_SUNRISE, $time = NULL){
    //Timestamp des Sonnenaug/untergangs nach Greenwich ermitteln
    //Der gmt-Offset scheint bei mir okal nicht zu funkiotneren bei wenn ich als Rückgabe den 
    //Timestamp haben will. Dies wird in weiter unten korrisgiert
    $timestamp = $function(time(), SUNFUNCS_RET_TIMESTAMP, C_LATITUDE, C_LANGITUDE, C_ZENIT, 0);    
    //date_sunrise mit gmtoffset korrigieren
    $retArr['timestamp'] = strtotime('+ '.C_GMTOFFSET.' Hours', $timestamp);
    //Differenz in Sekunden zu jetzt berechnen
    $retArr['diffSec'] = $retArr['timestamp'] - time();
    //In Stunden
    $retArr['hours'] = $retArr['diffSec'] / 3600 % 24;
    //Minuten
    $retArr['minutes'] = $retArr['diffSec'] / 60 % 60;
    //und Sekunden
    $retArr['seconds'] = $retArr['seconds'] % 60;
    return $retArr;
}
    
?>
 
Vielen vielen dank für das script, du hast mir echt weitergeholfen - nur jetzt hab ich festgestellt das der Server - wo das script laufen soll - kein php unterstützt :mad:
Manno, muss ich jetzt erst einen Serverumzug starten? Ätzend...
 
Zurück