Avatar billede encory Nybegynder
03. februar 2003 - 18:37 Der er 28 kommentarer og
1 løsning

Sammenligning af timestamps

Jeg har et problem med at sammenligne timestamps!
selve timestampet ser således ud 20030302164554 år|dag|måned|time|minut|sekund
Jeg benytter det i sammenhæng med et forum hvor indlæggets posters timestamp bliver sammenlignet med et timestamp fra en cookie på klientens/brugerens maskine. Cookie timestampet viser hvornår en bruger sidst har været inde i et indlæg og hvis nogle af indlæggene har poster hvis timestamp er nyere end cookiens betyder det at der skal signaleres nye indlæg.. dette virker bare ikke pga sammenlligningen af timestampsne.... nogen forslag til hvad man kan gøre ???

hvis post(timestamp) > cookie(timestamp)
    gør en hel masse
Avatar billede encory Nybegynder
03. februar 2003 - 18:38 #1
Har prøvet med mktime og andre af php´s funktioner.. sågar at fjerne 0 fra strengen og sætte disse  ind i slutningen af strengen så de havde den samme længde... intet har hjulpet so far
Avatar billede erikjacobsen Ekspert
03. februar 2003 - 18:40 #2
Mener du at du ikke bare kan sammenligne med < eller > ?
Avatar billede htm Nybegynder
03. februar 2003 - 18:43 #3
<?php

$stamp date("YdmHis", time());

if ($stamp > $_COOKIE["timestamp"]) {
echo "mindre";
}
else {
echo "større";
}

Sådan noget lign burde kunne gøre det tjek også http://www.php.net/manual/en/function.date.php
Avatar billede htm Nybegynder
03. februar 2003 - 18:44 #4
Skal selvfølgelig være:

<?php

$stamp =  date("YdmHis", time());

if ($stamp > $_COOKIE["timestamp"]) {
echo "mindre";
}
else {
echo "større";
}
?>
Avatar billede encory Nybegynder
03. februar 2003 - 18:44 #5
JA jeg benytter i øjeblikket en sætning der ser således ud
if($result[0] > $timestamp) {
}
$result[0] er den pågældende posts timestamp... og det virker ikke
fx. 20030302164554 > 20031402164554
Avatar billede htm Nybegynder
03. februar 2003 - 18:48 #6
Fik du kigger på mit forslag? Det virker fint her!
Avatar billede erikjacobsen Ekspert
03. februar 2003 - 18:49 #7
Keg kan ikke gennemskue om du sammenligner tal eller tekst.
Prøv som et lille hack


if("".$result[0] > "".$timestamp) {
Avatar billede encory Nybegynder
03. februar 2003 - 18:52 #8
Det gør ingen forskel om jeg bruger din sætning if("".$result[0] > "".$timestamp) { eller om jeg bruger min egen uden.....
Avatar billede erikjacobsen Ekspert
03. februar 2003 - 18:53 #9
Ok - men du kan uden videre sammenligne de to som strenge.
Der er derfor noget andet galt-
Avatar billede encory Nybegynder
03. februar 2003 - 18:56 #10
<?php
    if(!$_SESSION['useraccepted']) {
        echo "fejl";
    }
    else {
    if (isset ($_COOKIE["topicstatus"])) {
        $k = 0;
        while (list ($name, $value) = each ($_COOKIE["topicstatus"])) {
            $cookid[$k] = $name;
            $cooktimestamp[$k] = $value;
            $k++;
        }
        $skip = false;
    }
    else {
        $skip = true;
    }
    require "modules/mysqlfunctions.php";
    $connection = openMysql("localhost", "encory", "ghost21", "encdab");
    if($_SESSION['userlevel'] == "Guest") {
        $sqltopics = "SELECT t.ID, t.TopicName, u.Name, t.TimeStamp FROM topics t, forumusers u WHERE t.UserID = u.ID AND Privacy = 'public' ORDER BY t.ID DESC";
        $newpostssql = "SELECT p.TimeStamp, p.TopicID, u.Name, FROM posts p, forumusers u WHERE u.ID = p.UserID ORDER BY TimeStamp DESC";
        $countsql = "SELECT p.TopicID, COUNT(p.TopicID) AS count FROM posts p, topics t WHERE t.ID = p.TopicID GROUP BY t.ID ORDER BY t.ID DESC";
    }
    else {
        $sqltopics = "SELECT t.ID, t.TopicName, u.Name, t.TimeStamp, t.Privacy FROM topics t, forumusers u WHERE t.UserID = u.ID ORDER BY t.ID DESC";
        $newpostssql = "SELECT p.TimeStamp, p.TopicID, u.Name, p.ID FROM posts p, forumusers u WHERE u.ID = p.UserID ORDER BY TimeStamp DESC";
        $countsql = "SELECT p.TopicID, COUNT(p.TopicID) AS count FROM posts p, topics t WHERE t.ID = p.TopicID GROUP BY t.ID ORDER BY t.ID DESC";
    }
    $topics = mysql_query($sqltopics) or die(mysql_error( ));
?>
<br />
<table style="width:100%" class="forumtopics" cellspacing="0" cellpadding="0">   
    <tr>
        <td style="width:100%">
            <br />
            <div class="middletextheader">Encory Web Community</div><br />
            <div class="middletextheader">Velkommen: <?php echo $_SESSION['forumuser']; ?></div><br />
            <?php
            echo "<div class='smalltextgray'>";
            if($_SESSION['userlevel'] != "Guest") {
            echo "<a href='index.phtml?subpage=addtopic'>Tilf&oslash;j emne</a> | "; }?><a href='index.phtml?subpage=userlist'>Brugerliste</a> | <a href="index.phtml?subpage=forumhelp">Hj&aelig;lp</a> | <a href="subpages/logoff.php">Log af</a></div>
            <hr style="width: 100%" />
        </td>
    </tr>
    <tr>
        <td align="center">
            <div class="smalltextblackbold" style="padding-left:8px">Emner:</div><br />
            <table cellspacing="1" cellpadding="0" class="topics" style="width: 95%">
                <tr>
                    <td class="smalltextblackbold" style="background-color:#000000; color:#FFFFFF; padding-left: 2px">Titel</td>
                    <td class="smalltextblackbold" style="text-align: center; background-color:#000000; color:#FFFFFF">Startet af</td>
                    <td class="smalltextblackbold" style="text-align: center; background-color:#000000; color:#FFFFFF">Indl&aelig;g ialt </td>
                    <td class="smalltextblackbold" style="text-align: center; background-color:#000000; color:#FFFFFF">Status</td>
                    <td class="smalltextblackbold" style="text-align: center; background-color:#000000; color:#FFFFFF">Sidste indlæg af</td>
                    <?php
                        if($_SESSION['userlevel'] != "Guest") {
                    ?>
                    <td class="smalltextblackbold" style="text-align: center; background-color:#000000; color:#FFFFFF; padding-left: 2px; padding-right: 2px"><img src="pics/key.gif" style="width: 11px; height: 11px" /></td>
                    <?php
                    }
                    ?>
                </tr>
                <?php
                for($i = 1; $row = mysql_fetch_row ($topics); ++$i) {
                    if($skip == false) {
                        $timestamp = 999999999999;
                        for($j = 0; $j <= count($cookid); $j++) {
                            if($cookid[$j] == $row[0]) {
                                $timestamp = $cooktimestamp[$j];
                            }
                        }
                    }
                    $antal = 0;
                    $nypost = "Ingen nye ";
                    $found = false;
                    $lastpost = "";
                    $count = mysql_query($countsql) or die(mysql_error( ));
                    $newposts = mysql_query($newpostssql) or die(mysql_error( ));
                    $y = 0;
                    while($result = mysql_fetch_row($newposts)){
                        if($skip == false) {
                            if($result[1] == $row[0]) {
                                if($result[0] > $timestamp) {
                                    //echo (strtotime(prepdate($result[0]))) - (strtotime(prepdate($timestamp)))."<br />";
                                    //echo strtotime(prepdate($result[0]))." > ".strtotime(prepdate($timestamp))."<br />";
                                    if($y > 1) {
                                        $nypost = ++$y." nye!!";
                                    }
                                    else {
                                        $nypost = ++$y." ny!!";
                                    }
                                }
                            }
                        }
                        else {
                            $nypost = "";
                        }
                        if($result[1] == $row[0] && $found == false) {
                            $found = true;
                            $lastpost = $result[2];
                        }
                        $k++;
                    }
                    while($result = mysql_fetch_row($count)) {
                        if($result[0] == $row[0]) {
                            $antal = $result[1];
                        }
                    }
                    if (mod(2, $i) == 0) {
                        echo "<tr>";
                        echo "<td width='50%' class='lightline'><a href='index.phtml?subpage=showtopic&amp;id=".$row[0]."&amp;next=0&amp;setcookie=true'>".$row[1]."</a></td>";
                        echo "<td class='lightline' style='text-align: left; padding-left: 6px'>".$row[2]."</td><td class='lightline' style='text-align: left; padding-left: 6px'>".$antal."</td><td class='lightline' style='text-align: left; padding-left: 6px'>".$nypost." </td><td class='lightline' style='text-align: left; padding-left: 6px'>".$lastpost."</td>";
                        if($_SESSION['userlevel'] != "Guest") {
                            if($row[4] == "public") {
                                echo "<td class='lightline' style='padding-left: 3px'><img src='pics/unlockedwhite.gif' alt='unlocked' /></td>";
                            }
                            else {
                                echo "<td class='lightline' style='padding-left: 3px'><img src='pics/lockedwhite.gif' alt='locked'/></td>";
                            }
                        }
                        echo "</tr>";
                    }
                    else {
                        echo "<tr>";
                        echo "<td width='50%'class='darkline'><a href='index.phtml?subpage=showtopic&amp;id=".$row[0]."&amp;next=0&amp;setcookie=true'> ".$row[1]."</a></td>";
                        echo "<td class='darkline' style='text-align: left; padding-left: 6px'>".$row[2]." </td><td class='darkline' style='text-align: left; padding-left: 6px'>".$antal."</td><td class='darkline' style='text-align: left; padding-left: 6px'>".$nypost." </td><td class='darkline' style='text-align: left; padding-left: 6px'>".$lastpost." </td>";
                        if($_SESSION['userlevel'] != "Guest") {
                            if($row[4] == "public") {
                                echo "<td class='darkline' style='padding-left: 3px'><img src='pics/unlockedgray.gif' alt='unlocked' /></td>";
                            }
                            else {
                                echo "<td class='darkline' style='padding-left: 3px'><img src='pics/lockedgray.gif' alt='locked' /></td>";
                            }
                        }
                        echo "</tr>";
                    }
                }
                closeMysql($connection);
            ?>
            </table>
            <br />
        </td>
    </tr>
    <?php
        if($_SESSION['userlevel'] != "Guest") {
            echo "<tr>";
            echo "<td colspan='4' class='smalltextgray' style='padding-right: 27px; text-align: right'><img src='pics/unlockedwhite.gif' alt='unlocked' /> - Offentligt emne | <img src='pics/lockedwhite.gif' alt='locked' /> - Privat emne</td>";
            echo "</tr>";
            if($skip == true) {
                echo "<tr><td colspan='4' class='smalltextgray' style='padding-right: 27px; text-align: right'>* <a href='index.phtml?subpage=cookiesetup'>Ret dine cookieindstillinger</a></td></tr>";
            }
        }
    ?>
   
</table>
<?php
}
?>
Avatar billede encory Nybegynder
03. februar 2003 - 18:56 #11
Kan også maile det til dig hvis det er nemmere...... :o)
Avatar billede encory Nybegynder
03. februar 2003 - 18:58 #12
Http://www.encory.dk  Web Community -  brugernavn: Guest | pass : guest
Avatar billede erikjacobsen Ekspert
03. februar 2003 - 19:13 #13
Næh, det kan jeg ikke bruge til noget. Kan du ikke
lave et par testudskrifter lige inden

      if($result[0] > $timestamp) {
Avatar billede encory Nybegynder
03. februar 2003 - 19:25 #14
20030203191428 - Timestamp Hentet fra cookie
result 1 :44 == row: 44
result 0 :20031701132156 > TimeStamp: 20030203191428
Case Modding Brian  1 1 ny!!  Brian 
20030203191432 - Timestamp Hentet fra cookie
result 1 :43 == row: 43
result 0 :20032901111325 > TimeStamp: 20030203191432
result 1 :43 == row: 43
result 0 :20032801105508 > TimeStamp: 20030203191432
result 1 :43 == row: 43
result 0 :20032401175423 > TimeStamp: 20030203191432
result 1 :43 == row: 43
result 0 :20032401133045 > TimeStamp: 20030203191432
result 1 :43 == row: 43
result 0 :20032301124744 > TimeStamp: 20030203191432
result 1 :43 == row: 43
result 0 :20032101150608 > TimeStamp: 20030203191432
result 1 :43 == row: 43
result 0 :20032101150241 > TimeStamp: 20030203191432
result 1 :43 == row: 43
result 0 :20032101144515 > TimeStamp: 20030203191432
result 1 :43 == row: 43
result 0 :20032101074925 > TimeStamp: 20030203191432
result 1 :43 == row: 43
result 0 :20032001215734 > TimeStamp: 20030203191432
result 1 :43 == row: 43
result 0 :20032001192448 > TimeStamp: 20030203191432
result 1 :43 == row: 43
result 0 :20032001190525 > TimeStamp: 20030203191432
result 1 :43 == row: 43
result 0 :20032001131714 > TimeStamp: 20030203191432
result 1 :43 == row: 43
result 0 :20032001130923 > TimeStamp: 20030203191432
result 1 :43 == row: 43
result 0 :20031601204124 > TimeStamp: 20030203191432
Festivitas hos Stine Birger 15 15 nye!!  Kim 
20030203191436 - Timestamp Hentet fra cookie
result 1 :38 == row: 38
result 0 :20031001111056 > TimeStamp: 20030203191436
result 1 :38 == row: 38
result 0 :20031001110047 > TimeStamp: 20030203191436
result 1 :38 == row: 38
result 0 :20030901183505 > TimeStamp: 20030203191436
result 1 :38 == row: 38
result 0 :20030901172527 > TimeStamp: 20030203191436
result 1 :38 == row: 38
result 0 :20030901162044 > TimeStamp: 20030203191436
result 1 :38 == row: 38
result 0 :20030801161016 > TimeStamp: 20030203191436
result 1 :38 == row: 38
result 0 :20030801160018 > TimeStamp: 20030203191436
result 1 :38 == row: 38
result 0 :20030801152519 > TimeStamp: 20030203191436
result 1 :38 == row: 38
result 0 :20030801150028 > TimeStamp: 20030203191436
result 1 :38 == row: 38
result 0 :20030801130024 > TimeStamp: 20030203191436
result 1 :38 == row: 38
result 0 :20030801130012 > TimeStamp: 20030203191436
result 1 :38 == row: 38
result 0 :20030701102531 > TimeStamp: 20030203191436
Jobsøgning - Relevante firmaer Brian  12 12 nye!!  Birger 
20030203191440 - Timestamp Hentet fra cookie
result 1 :3 == row: 3
result 0 :20031501125635 > TimeStamp: 20030203191440
result 1 :3 == row: 3
result 0 :20031201114020 > TimeStamp: 20030203191440
result 1 :3 == row: 3
result 1 :3 == row: 3
Kritik af HP og underliggende forum... Birger 4 2 ny!!  Birger 
20030203191445 - Timestamp Hentet fra cookie
result 1 :2 == row: 2
result 0 :20032401140335 > TimeStamp: 20030203191445
result 1 :2 == row: 2
result 0 :20031501004034 > TimeStamp: 20030203191445
result 1 :2 == row: 2
result 0 :20031401162930 > TimeStamp: 20030203191445
result 1 :2 == row: 2
result 0 :20031201140702 > TimeStamp: 20030203191445
result 1 :2 == row: 2
result 0 :20031201113516 > TimeStamp: 20030203191445
result 1 :2 == row: 2
result 0 :20031001152734 > TimeStamp: 20030203191445
result 1 :2 == row: 2
result 0 :20030901170013 > TimeStamp: 20030203191445
result 1 :2 == row: 2
result 0 :20030801130052 > TimeStamp: 20030203191445
result 1 :2 == row: 2
result 0 :20030701130025 > TimeStamp: 20030203191445
result 1 :2 == row: 2
result 0 :20030701115548 > TimeStamp: 20030203191445
result 1 :2 == row: 2
result 0 :20030301141515 > TimeStamp: 20030203191445
result 1 :2 == row: 2
result 0 :20030301140055 > TimeStamp: 20030203191445
result 1 :2 == row: 2
result 0 :20030301130045 > TimeStamp: 20030203191445
result 1 :2 == row: 2
Avatar billede htm Nybegynder
03. februar 2003 - 19:31 #15
Du er ikke sikker på at du får et højere tal på den måde dit timestamp er på

eks. 20030102120000 som er 1/2 2003 lavere end 20033001120000 som er den 30/1 2003

Lav dit timestamp om så det hedder: År|måned|dag|time|dag|sek
Avatar billede erikjacobsen Ekspert
03. februar 2003 - 19:31 #16
Er det en direkte udskrift af $result[0] og $timestamp
Avatar billede encory Nybegynder
03. februar 2003 - 19:33 #17
År|måned|dag|time|dag|sek

er du sikker på  at det skal se sådan ud ????
Avatar billede encory Nybegynder
03. februar 2003 - 19:33 #18
ja det er det....
Avatar billede erikjacobsen Ekspert
03. februar 2003 - 19:33 #19
Jeg forstår nemlig ikke hvordan en af værdierne kan være
  20031601204124
for mig bekendt er der ikke ret mange år med 16 måneder :)
Avatar billede ksostack Nybegynder
03. februar 2003 - 19:33 #20
Prøv med:
<?
$timestamp_cookie = "20030302164554"; // eller uden anførselstegn som integer.
$timestamp_post = "20020302164554"; // eller uden anførselstegn som integer.
  if($timestamp_post >= $timestamp_cookie) {
    // gør en hel masse.
    echo "Den er større eller lig med";
  } else {
    // gør en hel masse andet.
    echo "Den er mindre";
  }
?>

virker begge dele for mig;
//ksostack
Avatar billede encory Nybegynder
03. februar 2003 - 19:37 #21
20031601204124 er år 2003 d. 16. i første måned kl. 20: 41: 24 derfor....
Avatar billede htm Nybegynder
03. februar 2003 - 19:37 #22
encory>> Ja i mit eksempel vil

30/1 2003 give 20030230120000
og 1/2 2003 vil give 20030201120000

Som du ser er den nye dato nu større end den gamle hvilket ikke var tilfældet med den gamle
Avatar billede encory Nybegynder
03. februar 2003 - 19:39 #23
HTM>> Du har ganske ret... det var mere din timestamp syntaks jeg ikke synes så rigtig ud ??
År|måned|dag|time|dag|sek
Avatar billede encory Nybegynder
03. februar 2003 - 19:40 #24
Du har dag to gange....
Avatar billede htm Nybegynder
03. februar 2003 - 19:42 #25
He he sorry - det var lige en lille svipser, men du forstod jo
den skal selvfølgelig være

År|måned|dag|time|minut|sek
Avatar billede encory Nybegynder
03. februar 2003 - 19:44 #26
date("YmdHis")
kan vi blive enige om at den skal se sådan ud ???
Avatar billede htm Nybegynder
03. februar 2003 - 19:45 #27
Jow! :-)
Avatar billede encory Nybegynder
03. februar 2003 - 19:47 #28
Godt så... Du får point HTM for din tålmodighed og for at have løst mit problem... det ser ud til at jeg nu skal databasen igennem og rette samtlige timestamps.... :o)da det ikke var koden der fejlede noget.
Tak for hjælpen
Avatar billede htm Nybegynder
03. februar 2003 - 19:49 #29
encory>> Velbekommen - takker for point!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester