Ankündigung

Einklappen
Keine Ankündigung bisher.

Unix Timestamp -> Timestamp H:i:s

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Unix Timestamp -> Timestamp H:i:s

    Hey.

    Wie kann ich einen Unix Timestamp im Format 147377473848... in Stunden, Minuten und Sekunden seit z.B. 1970 umformen? Ich frage da ich im Internet nur die Antwort finde ins Datum umzuformen. Bei einem Zeitabschnitt von unter 24 h geht das zwar noch, aber schon bei 25 würde da 23:00:00 stehen.

    Dankö


  • #2
    Bin ich der einzige, der selbst nach dreimaligem Lesen der Frage nicht versteht, was der Autor gerne hätte?

    Du willst einen Zeitstempel einfach in ein repräsentatives Datum im Format 'Y-m-d H:i:s' umwandeln?

    PHP-Code:
    /**
     * Format a given unix timestamp.
     *
     * @param int $timestamp
     *
     * @return string
     */
    function format($timestamp)
    {
        
    $timestamp = (int) $timestamp;

        
    $dt = new \DateTime();
        
    $dt->setTimestamp($timestamp);

        return 
    $dt->format('d.m.y H:i:s');

    Oder willst du eine Zeitspanne in Sekunden auf Stunden, Minuten und Sekunden aufbrechen und diese ausgeben?

    PHP-Code:
    /**
     * Format the elapsed time according to following scheme.
     *
     * 14h 13m 12s
     *
     * @param int $elapsedTime
     *
     * @return string
     */
    function format($elapsedTime)
    {
        if (
    $elapsedTime 0) {
            throw new \
    InvalidArgumentException('Can\'t format a negative elapsed time.');
        }

        
    $seconds = (int) $elapsedTime;

        
    $dt = new \DateTime();
        
    $dt->add(new \DateInterval('PT' $seconds 'S'));
        
    $interval $dt->diff(new \DateTime());

        return 
    $interval->format('%Hh %Im %Ss');

    Kommentar


    • #3
      Bin ich der einzige, der selbst nach dreimaligem Lesen der Frage nicht versteht was der Autor gerne hätte?
      Nein, mir gehts auch nicht anders.

      147377473848
      Was soll das für ein Timestamp sein?

      PHP-Code:
      echo time(); // 1421686282 
      Aber was dir helfen könnte: DateTime::createFromFormat und DateTime::diff
      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
      PHP.de Wissenssammlung | Kein Support per PN

      Kommentar


      • #4
        Bringe bitte mal ein Beispiel mit einem echten Timestamp und dem passenden Ergebnis wie du es brauchst.
        PHP-Klassen auf github

        Kommentar


        • #5
          Bin ich der einzige, der selbst nach dreimaligem Lesen der Frage nicht versteht was der Autor gerne hätte?
          Musste es 2x durchlesen

          PHP-Code:
          $timestamp '1421772840';
          $seit strtotime("1970-01-01"); //JJJJ-MM-TT
          $bis $timestamp;
          $diff abs($bis $seit);
          $std floor($diff 3600);
          $min floor(($diff - ($std*3600)) / 60);
          $sek floor($diff 60);
          echo 
          $std."h ".$min."m ".$sek."s"

          Kommentar


          • #6
            Nur das es halt mit dem Timestamp (wenn es denn wirklich einer sein soll) nicht wirklich was anfangen kann:

            PHP-Code:
            $tz = new DateTimeZone('Europe/Berlin');

            $ts '147377473848';
            $dt DateTime::CreateFromFormat('U'$ts$tz);
            var_dump($dt);
            /*
            object(DateTime)#2 (3) {
              ["date"]=>
              string(19) "6640-03-16 19:10:48"
              ["timezone_type"]=>
              int(1)
              ["timezone"]=>
              string(6) "+00:00"
            }
            */

            $since = new DateTime('1970-01-01'$tz);
            $diff $dt->diff($since);
            var_dump($diff);
            /*
            object(DateInterval)#4 (8) {
              ["y"]=>
              int(4670)
              ["m"]=>
              int(2)
              ["d"]=>
              int(15)
              ["h"]=>
              int(20)
              ["i"]=>
              int(10)
              ["s"]=>
              int(48)
              ["invert"]=>
              int(1)
              ["days"]=>
              int(1705757)
            }
            */ 
            LG
            Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
            PHP.de Wissenssammlung | Kein Support per PN

            Kommentar

            Lädt...
            X