webForumDet fria alternativet

Räkna tid

PHPur PHP

2 svar · 465 visningar · startad av SoulGod

SoulGodMedlem sedan aug. 20051 200 inlägg
#1

Jag har ett script på en sida som räknar ut värdet mellan 2 tider,
men som inte vill fungera riktigt som jag vill.
Koden jag har är:

           if ($row["pretime"] != '0000-00-00 00:00:00' && $row["req"] == 0) {

            $pretime = $row["pretime"];

            $efterpre = "  (" . get_elapsed_time_all(sql_timestamp_to_unix_timestamp($row['added']), sql_timestamp_to_unix_timestamp($row['pretime'])) . " since uploaded)";

            } elseif ($row["pretime"] == '0000-00-00 00:00:00' && $row["req"] == 0) {

            $efterpre = " ()";

            } 

            if($CURUSER["id"] == '1' || $CURUSER["id"] == '2' || $row["req"] == 1)

		tr("" . DETAILS_TILLAGD . "", $row["added"] . $efterpre);

Tabellen heter: tor
Kolumn 1: added
Kolumn 2: pretime

Jag vill alltså ta pretime minus added.
Jag lägger in pretime via current_timestamp i databasen.

Mina 2 frågor är:
1. Jag vill att pretime alltid ska vara värdet som är "just nu".
Alltså frågar jag efter pretime 3 ggr på 3 olika dagar skall jag få 3 olika värden.
Hur gör jag det?

2. Koden ovanför räknar just nu fel.
Just nu räknar den:
2008-12-07 01:22:38
2008-12-07 01:21:58
---------------------
6 dagar 23 timmar 59 minuter 20 sekunder

Vilket bara borde vara 40 sekunder?
Någon som har en aning?

glennMedlem sedan dec. 20083 inlägg
#2

Använder liknande funktion. Själv sparar jag "added" i datetime och gör om det till strtotime, sen subtraherar jag dem båda tiderna med varandra och gör sedan om dem till vanligt format igen.

überfuzzMedlem sedan apr. 2006409 inlägg
#3

Gör som glenn skriver, använd timestamp. Annars kommer du förmodligen få konstiga fel tex runt årsskiften.

Du kan bortse ifrån din kolumn pretime eftersom $nu bestäms av tiden då någon kör skriptet.

$query = "SELECT added FROM din_tabell WHERE något = ???";
$nu = time();// php just nu

Skriv in ett WHERE-vilkor som tar fram den rad du är intresserad av.
Plocka ut added-värdet $added och subtrahera.

$tid = $nu - $added;
133 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)