php-timestamp formatieren

fishguts

Erfahrenes Mitglied
ich habe in einer datenbank ein datum als timestamp gespeichert (form: 1027431922)
wie kann ich diesen timestamp jetzt so formatieren, dass daraus "Jul 2002" wird?
 
Benutz die Date-Funktion oder strftime-Funktion!


date("d.m.Y H:i:s", $deintimestamp);
d-Tage als Zahl mit führender Null
m-Monate als Zahl mit 0
Y-Jahr vierstellig
 
hi fishguts
da gibt es 2 Möglichkeiten


1.: du verwendest als datum gleich date("M.Y");
dadurch wird das datum sofort nach dienem Wunsch ausgelesen und du kannst es so in deiner Datenbank speichern.

2.: Du wandelst deinen Timestamp um das geht ungeefähr so:

<?php
$datum = date("M.Y",$timestamp);
echo "$datum";
?>

in dienem Fall müsste dann Jul 2002 dastehen eine vollständige liste wie man date(); formatieren kann gibt es unter
http://www.php.net/manual/de/function.date.php


greetz haldjo1
 
Hi!

Ich hab da mal ein problem mit der Timestamp umwandlung :-)

PHP:
$db = mysql_connect($dbserver, $dbuser, $dbpass);
mysql_select_db($dbname, $db);
$sql = "SELECT * FROM test";
$result = mysql_query($sql, $db);

$zeit = mysql_fetch_array($result);

echo "<br>".$zeit[endtime]."";

$verbleib = $zeit[endtime] - time();

echo "<br><br>".$verbleib."<br>";

$stunden = date("G",$verbleib);
echo "<br>$stunden";
$minuten = date("i",$verbleib);
echo "<br>$minuten";
$sekunden = date("s",$verbleib);
echo "<br>$sekunden";

$datum = date("G:i:s",$verbleib);
echo "<br>$datum";

Es funktioniert eignetlich alles so wie es soll, also fast alles.
Ich hole mir das enddatum aus der Datenbank, ziehe die aktuelle Zeit davon ab und bekomme den DifferenzWert.
Das ergebnis ist aber nur so lange richtig, wenn es zwischen 1 Stunde und 24 Stunden ist! Wenn ich jetzt aber aus der Subtraktion z.B. 5 min. restzeit rausbekomme steht $stunden immer auf 1. Bekomme ich aus der Subtraktion z.B. 48 Stunden raus (Quasie 2 Tage :-) ) steht da 00 ... das ist für einen Counter nicht so gut *g*
Die Minuten und Sekunden sind immer richtig, sind aber allerdings dann die z.B. 5 min abgelaufen im Counter, fängt er an die Stunde runterzuzählen, obwohl bei der subtraktion schon lange ein Minus Ergebnis rauskommt. Es ist mir klar das eine Normale Uhr nur bis 24 (bzw. 00) geht, aber wie kann ich einen Timestamp formatieren,wenn das ergebnis nur 5 min. sind? Das da auch wirklich nur 0:05:00 rauskommt und nicht 1:05:00 oder bei 2 Tagen: 48:00:00 oder 1 Tag 23:59:00 oder so ^^
 
Zuletzt bearbeitet:
Ich glaube, dass das Problem in der date()-Funktion liegt, die ja immer das Datum in Sekunden seit dem 1.1.1970 01:00 Uhr angibt, und du daher irgendeine dämliche Uhrzeit herrausbekommst.
(könnt ich mir vorstellen)

PHP:
$stunden = floor($verbleib/3600);
$verbleib = $verbleib - floor($verbleib/3600);
echo "<br>$stunden";
$minuten = floor($verbleib/60);
$verbleib = $verbleib - floor($verbleib/60);
echo "<br>$minuten";
$sekunden = $verbleib;
echo "<br>$sekunden";

$datum = $stunden.":".$minuten.":".$sekunden;
echo "<br>$datum";

so sollte es gehen (nicht getestet).
 
Ne, sorry, das funtzt net wirklich :-)
Hier mal das ganze Test Script:
($time gebe ich aus um in zum Testen einfach schnell manuell in die datenbank einzutragen)
PHP:
<?
$time = time() + (10*60);         

echo "".$time."<br>";



$db = mysql_connect($dbserver, $dbuser, $dbpass);
mysql_select_db($dbname, $db);
$sql = "SELECT * FROM test";
$result = mysql_query($sql, $db);

$row = mysql_fetch_array($result);

echo "<br>".$row[endtime]."";

$verbleib = $row[endtime] - time();


$stunden = floor($verbleib/3600);
$verbleib = $verbleib - floor($verbleib/3600);
echo "<br>$stunden";
$minuten = floor($verbleib/60);
$verbleib = $verbleib - floor($verbleib/60);
echo "<br>$minuten";
$sekunden = $verbleib;
echo "<br>$sekunden";

$datum = $stunden.":".$minuten.":".$sekunden;
echo "<br>$datum";

                ?>

<script language="JavaScript">
<!--//Zeit Bis zum Start
var SEC = <? echo $sekunden ?>;var MIN = <? echo $minuten ?>;var STD = <? echo $stunden ?>;
setInterval("startCountdown()",1000)
function startCountdown(){
if(MIN >= 10 && (SEC - 1) >= 10) {
  SEC = SEC - 1;
  numberCountdown.innerText = STD + ":" + MIN + ":" + SEC;
} else if(MIN >= 10 && (SEC - 1) < 10 && (SEC - 1) >= 0) {
  SEC = SEC - 1;
  numberCountdown.innerText = STD + ":" + MIN + ":0" + SEC;
} else if( MIN < 10 && MIN >= 0 && (SEC - 1) < 10 && (SEC - 1) >= 0) {
  SEC = SEC - 1;
  numberCountdown.innerText = STD + ":0" + MIN + ":0" + SEC;
} else if(MIN < 10 && MIN >= 0 && (SEC - 1) >= 10) {
  SEC = SEC - 1;
  numberCountdown.innerText = STD + ":0" + MIN + ":" + SEC;
} else if((MIN - 1) >= 10 && SEC == 0) {
  SEC = 59;  MIN = MIN - 1;
  numberCountdown.innerText = STD + ":" + MIN + ":" + SEC;
} else if((MIN - 1) < 10 && (MIN - 1) >= 0 && SEC == 0) {
  SEC = 59;  MIN = MIN - 1;  numberCountdown.innerText = STD + ":0" + MIN + ":" + SEC;
} else if(MIN == 0 && SEC == 0) {
  STD = STD - 1;  MIN = 59;  SEC = 59;
  numberCountdown.innerText = STD + ":" + MIN + ":" + SEC;
}
}
//-->
</script>
<div align="center"><div id="numberCountdown"><? echo $stunden ?>:<? echo $minuten ?>:<? echo $sekunden ?></div></div>

Ich hab oben:
$time2 = time() + (10*60); den Timestamp trage ich in die Datenbank ein! Da kommt dann im JS counter z.B. 0:09:477 raus ^^ es wird auch mehr ... 5 stellige sekunden zahl, oder 4 stellige minuten zahl und all so was. Das script was du geschrieben hast teilt das also irgendwie net richtig und gibt als Sekunden und minuten zahlen aus die größer als 2 stellen sind und somit werden auch die Stunden irgendwie net richtig ^^

Dann habe ich noch ne Frage:
bei den ganzen Online Spielen, kann man auf der seite sein, wenn der Counter runterzählt und wenn er auf 0:00:00 steht, passiert etwas (weiterleitung in den meisten ällen ^^ ) wie kann ich das machen? Das muss man ja dann in JS Programmieren oder? Da PHP nur checken würde das die Zeit auf null ist, wenn man die Seite im Richtigen moment neu laden würde, sonst würde es einfach weiterzählen und im Hintergrund ins Minus zählen und dann ist es ja nicht mehr auf Null.

Edit
Das mit der weiterleitung bei 0:00:00 hat sich erledigt, das hab ich gerade selbst hinbekommen *stolz ist* :-)
 
Zuletzt bearbeitet:
Geschafft ...

Es ist vollbracht :-)
Die Formatierung des Timestamps hab ich jetzt endlich hinbekommen und das nach einer bestimmten Zeit etwas passiert funtzt auch :-)

MFG
SSJSon-GOten
 
Zurück