mysqldumper
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 06.01.2006, 15:25   #1
TP-Member
 
Benutzerbild von -Andi-
 
Registriert seit: Aug 2005
-Andi- macht alles soweit korrekt

Umwandeln von Sekunden in Jahr, Monat, Woche, ...


Hi,
Ich habe im Internet einen Codeschnipsel gefunden, welcher angegebene Sekunden als Jahre, Monate, Wochen, Tage, Stunden, Minuten und Sekunden ausgibt.

Code:
function tellSeconds($NumberOfSeconds)
{

    $time_map = array(
     'Jahre'     => 31536000,    # 365 Tage
     'Monate'    => 2592000,    # 30 Tage
     'Wochen'    => 604800,    # 7 Tage
     'Tage'     => 86400,
     'Stunden'     => 3600,
     'Minuten'     => 60,
     'Sekunden'     => 1,
    );

    $SecondsTotal     = $NumberOfSeconds;

    $SecondsLeft     = $SecondsTotal;

    $stack = array();

    foreach ($time_map as $k => $v) {

        if ($SecondsLeft < $v || $SecondsLeft == 0) {
                continue;
        } else {
                $amount = floor($SecondsLeft/ $v);
                    $SecondsLeft = $SecondsLeft % $v;

            $label = ($amount>1)
                ? $k
                : substr($k, 0, -1);

                    $stack[] = sprintf('<strong>%s</strong> %s', $amount, $label);
        }
    }
    $cnt = count($stack);

    if ($cnt > 1){
        $tmp1 = array_pop($stack);
        $tmp2 = array_pop($stack);
        array_push ($stack, $tmp2 . ' und '.$tmp1);
    };
    $result = join (', ', $stack);
    return $result;

}

if (isset($_POST['seconds'])) {
    $_POST['seconds'] = intval($_POST['seconds']);
    print tellSeconds($_POST['seconds']);
}

echo <<< EOT
<form action="{$_SERVER['PHP_SELF']}" method="post">
<input type="text" name="seconds" value="{$_POST['seconds']}">
<input type="submit" value="Sekunden umrechnen">
</form>

EOT;
Nun würde ich aber gerne nichts ausgeben, sondern die Werte in die jeweilige Variable speichern ($jahr, $monat, $woche, $tag, $stunde, $minute, $sekunde).
Weiß jemand wie ich den Codeschnipsel umstellen muss, dass ich dies so gespeichert bekomme?

Danke im Voraus.


Mfg. -Andi-
-Andi- ist offline   Mit Zitat antworten


Alt 06.01.2006, 16:07   #2
TP-Member
 
Benutzerbild von -Andi-
 
Registriert seit: Aug 2005
-Andi- macht alles soweit korrekt
Hi,
habs bereits gelöst. Trotzdem danke.

Mfg. -Andi-
-Andi- ist offline   Mit Zitat antworten
Alt 06.01.2006, 17:04   #3
TP-Specialist
 
Benutzerbild von rewboss
 
Registriert seit: Mar 2005
Ort: Unterfranken
rewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKE
Und wie hast du das gelöst, falls jemand gerade vor demselben Problem sitzt?
rewboss ist offline   Mit Zitat antworten
Alt 12.01.2006, 10:50   #4
TP-Member
 
Benutzerbild von -Andi-
 
Registriert seit: Aug 2005
-Andi- macht alles soweit korrekt
Hihi!
Also ich habe das ganze aus der Funktion herausgelöscht und so in mein Script eingearbeitet, um die Variablen zu speichern.

Code:
$NumberOfSeconds = "123456789000000000";

    $time_map = array(
     'Jahre'     => 31536000,    # 365 Tage
     'Monate'    => 2592000,    # 30 Tage
     'Wochen'    => 604800,    # 7 Tage
     'Tage'     => 86400,
     'Stunden'     => 3600,
     'Minuten'     => 60,
     'Sekunden'     => 1,
    );

    $SecondsTotal     = $NumberOfSeconds;

    $SecondsLeft     = $SecondsTotal;

    $stack = array();

    foreach ($time_map as $k => $v) {

        if ($SecondsLeft < $v || $SecondsLeft == 0) {
                continue;
        } else {
                $amount = floor($SecondsLeft/ $v);
                    $SecondsLeft = $SecondsLeft % $v;

            $label = ($amount>1)
                ? $k
                : substr($k, 0, -1);

                    $stack[] = sprintf('<strong>%s</strong> %s', $amount, $label);
        }
    }
    $cnt = count($stack);

    if ($cnt > 1){
        $tmp1 = array_pop($stack);
        $tmp2 = array_pop($stack);
        array_push ($stack, $tmp2 . ' und '.$tmp1);
    };
    $result = join (', ', $stack);
    return $result;

$jahr = $stack[0];
$woche = $stack[1];
......

Wenn man lediglich die Zeit haben möchte, genügt es auch die Funktion so zu lassen und über tellseconds(....) aufzurufen.

Code:
function tellSeconds($NumberOfSeconds)
{

    $time_map = array(
     'Jahre'     => 31536000,    # 365 Tage
     'Monate'    => 2592000,    # 30 Tage
     'Wochen'    => 604800,    # 7 Tage
     'Tage'     => 86400,
     'Stunden'     => 3600,
     'Minuten'     => 60,
     'Sekunden'     => 1,
    );

    $SecondsTotal     = $NumberOfSeconds;

    $SecondsLeft     = $SecondsTotal;

    $stack = array();

    foreach ($time_map as $k => $v) {

        if ($SecondsLeft < $v || $SecondsLeft == 0) {
                continue;
        } else {
                $amount = floor($SecondsLeft/ $v);
                    $SecondsLeft = $SecondsLeft % $v;

            $label = ($amount>1)
                ? $k
                : substr($k, 0, -1);

                    $stack[] = sprintf('%s %s', $amount, $label);
        }
    }
    $cnt = count($stack);

    if ($cnt > 1){
        $tmp1 = array_pop($stack);
        $tmp2 = array_pop($stack);
        array_push ($stack, $tmp2 . ' und '.$tmp1);
    };
    $result = join (', ', $stack);
    return $result;

}

Mfg. -Andi-
-Andi- ist offline   Mit Zitat antworten
Alt 12.01.2006, 11:27   #5
TP-Urgestein
 
Benutzerbild von webcreate
 
Registriert seit: Nov 2003
Ort: NRW
webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts
Warum umschreiben?
Man kann ja auch das Array via return aus der function geben und dann über ein for ausgeben, oder auf die jeweiligen Elemente des Arrays zugreifen.
PHP-Code:
<?
function tellSeconds($NumberOfSeconds)
{

    
$time_map = array(
     
'Jahre'     => 31536000,    # 365 Tage
     
'Monate'    => 2592000,    # 30 Tage
     
'Wochen'    => 604800,    # 7 Tage
     
'Tage'     => 86400,
     
'Stunden'     => 3600,
     
'Minuten'     => 60,
     
'Sekunden'     => 1,
    );

    
$SecondsTotal     $NumberOfSeconds;

    
$SecondsLeft     $SecondsTotal;

    
$stack = array();

    foreach (
$time_map as $k => $v) {

        if (
$SecondsLeft $v || $SecondsLeft == 0) {
                continue;
        } else {
                
$amount floor($SecondsLeft$v);
                    
$SecondsLeft $SecondsLeft $v;

            
$label = ($amount>1)
                ? 
$k
                
substr($k0, -1);

                    
$stack[] = sprintf('%s %s'$amount$label);
        }
    }
    return 
$stack;
}
$ausgabe tellSeconds(36005);

for(
$i=0;$i<count($ausgabe);$i++) {
    if(
count($ausgabe) >1) echo $i == count($ausgabe)-"und ".$ausgabe[$i] : $ausgabe[$i].", ";
    else echo 
$ausgabe[$i];
}
?>
__________________
Gruß Mark
Mein Blog zum TP || XING Profil || grafiker.de Profil || How to use GOOGLE || PS Kniffe
emCalculator 1.0



webcreate IT SOLUTIONS
www.webcreate-nrw.de
webcreate ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Umwandeln von Sekunden in Jahr, Monat, Woche, ... Umwandeln von Sekunden in Jahr, Monat, Woche, ...
« Texteingabefelder füllen lassen | Daten aus MySQL-Datenbank mittels Session_ID Filtern ??? »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:46 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67