PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : wenn timestamp von heute, dann


bUTschy
02.10.2005, 20:46:06
hi leute

in meiner shoutbox schreibt jemand "heute" einen eintrag.
das datum wird via timestamp in das feld "time" in die datenbank geschreiben, welches ich mir so anzeigen lasse.

$time = strftime("%d.%m.%Y - %H:%M", $time);
echo "$time";wenn der eintrag jedoch von "heute" ist, möchte ich, das dort steht: Heute - 17:23

hat wer von euch nen lösungsansatz für mich ?

Gruß bUTschy

feuervogel
02.10.2005, 20:49:53
wenn du auf www.php.net/strftime schaust, dann findest du einen link zu der funktion mktime (http://www.php.net/manual/de/function.mktime.php). dort steht, wie du 00:00 vom heutigen tag in einen unix-timestamp verwandeln kannst. wenn der von dir ausgewählte größer gleich diesem ist, hängst du ein "heute - " vor die ausgabe; sonst nicht.

bUTschy
02.10.2005, 21:03:53
boh ey, geht das hier fix :D

danke @feuervogel... genau die seite hab ich schon rauf und runter, aber scheinbar fehlt mir das nötige verständnis (php-noob bin) ich scheitere an den einfachsten dingen, ich weiß nicht wie ich das auf mein $time anwenden muß :(

xabbuh
02.10.2005, 21:08:54
Möglich wäre eine Abfrage wie diese hier:

<?php
if(date('Ydm', $time) >= mktime(0, 0, 0, date('n'), date('j'), date('Y'))) {
// heute
}
?>

bUTschy
02.10.2005, 21:58:08
tHx @xabbuh... leider komme ich damit auch nicht weiter.

sowas muss es doch als codeschnipsel geben, wird doch bestimmt oft gebraucht oder nicht ?
zum google´n fehlt mir bestimmt nur der richtige suchbegriff ;)

hätt ich doch bloß nicht auf timestamp gesetzt *jammer* :(

meikel (†)
02.10.2005, 23:25:32
sowas muss es doch als codeschnipsel geben, wird doch bestimmt oft gebraucht oder nicht ?
Die, die das brauchen, erledigen das mit den hervorragend geeigneten Datum- und Zeitfunktionen von MySQL.

Der Rest macht das so oder so ähnlich:
$anzeige = (date('%d.%m.%Y') == date('%d.%m.%Y', $time))
? strftime("Heute - %H:%M", $time)
: strftime("%d.%m.%Y - %H:%M", $time);

bUTschy
03.10.2005, 13:48:06
hey meikel, vielen vielen dank, genau das war es, wonach ich gesucht habe :D

währe es unverschämt, wenn ich noch nach der möglichkeit "gestern" fragen würde ? ;)

meikel (†)
03.10.2005, 17:33:10
währe es unverschämt, wenn ich noch nach der möglichkeit "gestern" fragen würde ? ;)
Etwas, weil das Beispiel für 'morgen' schon im Handbuch steht.

$timestamp_morgen = strtotime("+1 day");
$timestamp_gestern = strtotime("-1 day");

bUTschy
03.10.2005, 19:49:46
hi und danke für deine mühe... :)

ja ne, -1 day ist schon klar und findet sich auch in dem handbuch
ich weiß nur nicht wie ich sowas auf meine schon vorhandenen variablen anzuwenden muß, wie jetzt auch mit deinem letzten beispiel :(

meikel (†)
03.10.2005, 22:38:33
ich weiß nur nicht wie ich sowas auf meine schon vorhandenen variablen anzuwenden muß, wie jetzt auch mit deinem letzten beispiel :(
So oder so ähnlich:
switch(date('%d.%m.%Y', $time))
{
case date('%d.%m.%Y'):
$anzeige = strftime("Heute - %H:%M", $time);
break;
case strtotime("-1 day"):
$anzeige = strftime("Gestern - %H:%M", $time);
break;
case strtotime("+1 day"):
$anzeige = strftime("Morgen - %H:%M", $time);
break;
default:
$anzeige = strftime("%d.%m.%Y - %H:%M", $time);
}

bUTschy
04.10.2005, 15:45:30
malzeit ;)

funktioniert wie bisher, aber leider wird kein "gestern" angezeigt.
währe ja auch nur zu schon sowas klick&fertiges ;-)