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
Annonceindlæg fra Infor
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
03. februar 2003 - 18:40
#2
Mener du at du ikke bare kan sammenligne med < eller > ?
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
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"; } ?>
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
03. februar 2003 - 18:48
#6
Fik du kigger på mit forslag? Det virker fint her!
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) {
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.....
03. februar 2003 - 18:53
#9
Ok - men du kan uden videre sammenligne de to som strenge. Der er derfor noget andet galt-
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øj emne</a> | "; }?><a href='index.phtml?subpage=userlist'>Brugerliste</a> | <a href="index.phtml?subpage=forumhelp">Hjæ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æ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&id=".$row[0]."&next=0&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&id=".$row[0]."&next=0&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 } ?>
03. februar 2003 - 18:56
#11
Kan også maile det til dig hvis det er nemmere...... :o)
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) {
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
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
03. februar 2003 - 19:31
#16
Er det en direkte udskrift af $result[0] og $timestamp
03. februar 2003 - 19:33
#17
År|måned|dag|time|dag|sek er du sikker på at det skal se sådan ud ????
03. februar 2003 - 19:33
#18
ja det er det....
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 :)
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
03. februar 2003 - 19:37
#21
20031601204124 er år 2003 d. 16. i første måned kl. 20: 41: 24 derfor....
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
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
03. februar 2003 - 19:40
#24
Du har dag to gange....
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
03. februar 2003 - 19:44
#26
date("YmdHis") kan vi blive enige om at den skal se sådan ud ???
03. februar 2003 - 19:45
#27
Jow! :-)
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
03. februar 2003 - 19:49
#29
encory>> Velbekommen - takker for point!
Vi tilbyder markedets bedste kurser inden for webudvikling