[php/mssql] met timestamps rekenen

Pagina: 1
Acties:

  • B2
  • Registratie: April 2000
  • Laatst online: 14:01

B2

wa' seggie?

Topicstarter
Voor m'n klachtensysteem, moet ik het aantal uren kunnen uitrekenen dat een unit offline is geweest.
Nu laat ik bij iederen klacht een timestamp zetten (wanneer deze aangemeld wordt en wanneer de klacht afgemeld wordt.)

Bij het rapportage gedeelte moet een rij komen met het totaal aantal uren dat een unit offline is geweest.
Dus iets van timestamp2-timestamp1 voor elke klacht.

Kan ik met timestamps rekenen? en ze in uren laten displayen?
Of is dit uberhaupt niet mogelijk.

  • Dennis
  • Registratie: Februari 2001
  • Nu online
Timestamps zijn ook maar seconden, dus als je ze van elkaar aftrekt houdt je het aantal seconden over!

* Dennis verteld postduif dat er 60 seconden in een minuut gaan, 60 minuten in een uur en 24 uur in een dag

* Dennis denkt dat postduif nu wel weer verder kan

  • Femme
  • Registratie: Juni 1999
  • Laatst online: 19:11

Femme

Hardwareconnaisseur

Official Jony Ive fan

En als je er dan leesbare tekst van wilt maken doe je zoiets als:
PHP:
1
<?function uptimefromseconds($upsecs) {    if($upsecs>3600) {        $uren=floor($upsecs/3600);        $minuten=floor(($upsecs-($uren*3600))/60);                    if($minuten<10) {            $minuten="0" . $minuten;        }                    if($uren>23) {            $dagen=floor($upsecs/86400);            $uren=floor($uren-($dagen*24));                            if($dagen==1) {                $uptext="$dagen dag, $uren:$minuten";            } else {                else $uptext="$dagen dagen, $uren:$minuten";            }        } else {            $uptext="$uren uur, $minuten minuten";        }    } else {        $minuten=floor($upsecs/60);        $uptext="$minuten minuten";    }        return $uptext;}?>

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 09-09 14:51

thomaske

» » » » » »

Je moet wel even oppassen. Er is een verschil tussen UNIX timestamps en de timestamps die MySQL gebruikt.

De unix timestamps zijn het aantal secondes sinds UNIX-epoch (01-01-1970). En de mysql timestamp is gewoon een datum in een ander formaat dus vandaag wordt iets van: 20020308105023 (YYYYMMDDHHMMSS).

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

thomaske:wordt het (YYYYMMDDHHMMSS).
Ah, handig ;)

Magoed, met een beetje handige delingen/restfuncties etc kom je daar ook wel uit (100 ipv 60 nemen)

  • Grum
  • Registratie: Juni 2001
  • Niet online
substr is dan handiger :P

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 19:14

Kees

Serveradmin / BOFH / DoC
oftewel, femme's functie in 1 regel:
echo("z \d\a\g\e\n H \u\r\e\n i \m\i\n\u\t\e\n s \s\e\c\o\n\d\e\n" $downtime)

(deze mag niet van acm, hij vind "1 dagen" niet mooi ;()
PHP:
1
<?functie uptimefromseconds($upsecs) {    if (($upsecs > 86400) &amp;&amp; ($upsecs < 86400*2)) $str = date("z", $upsecs) . " dag ";    else $str = date("z", $upsecs) . " dagen ";    if ((($upsecs = $upsecs % 86400) &amp;&amp; ($upsecs > 3600)) < 3600*2) $str .= date("H", $upsecs) . " uur ";    else $str .= date("z", $upsecs) . " uren ";    if ((($upsecs = $upsecs % 3600) > 60)) &amp;&amp; ($upsecs < 60*2)) $str .= date("i", $upsecs) . " min ";    else $str .= date("i", $upsecs) . " mins ";    if ((($upsecs = $upsecs % 60) > 1)) &amp;&amp; ($upsecs < 2)) $str .= date("s", $upsecs) . " sec";    else $str .= date("s", $upsecs) . " secs";    return $str;}?>

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan

Pagina: 1