timestamp auslesen

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
kolja
Mitglied
Beiträge: 1546
Registriert: 13.05.2005 16:39
Wohnort: münster

timestamp auslesen

Beitrag von kolja »

nabend

ich wollte mal wissen wie man aus dem unix timestamp ein normales datum bekommt

am liebsten mit excel oder über ein php script

ich habe durch den site_history mod volgende daten:

Code: Alles auswählen

-- 
-- Tabellenstruktur für Tabelle `phpbb2_site_history`
-- 

CREATE TABLE `phpbb2_site_history` (
  `date` int(11) NOT NULL default '0',
  `reg` mediumint(8) NOT NULL default '0',
  `hidden` mediumint(8) NOT NULL default '0',
  `guests` mediumint(8) NOT NULL default '0',
  `new_topics` mediumint(8) NOT NULL default '0',
  `new_posts` mediumint(8) NOT NULL default '0',
  UNIQUE KEY `date` (`date`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

-- 
-- Daten für Tabelle `phpbb2_site_history`
-- 

INSERT INTO `phpbb2_site_history` VALUES (1117306800, 11, 1, 2, 2, 0);
INSERT INTO `phpbb2_site_history` VALUES (1117310400, 11, 1, 1, 0, 0);
INSERT INTO `phpbb2_site_history` VALUES (1117314000, 12, 1, 2, 0, 0);
INSERT INTO `phpbb2_site_history` VALUES (1117317600, 1, 0, 0, 0, 0);
INSERT INTO `phpbb2_site_history` VALUES (1117324800, 1, 0, 1, 0, 0);
INSERT INTO `phpbb2_site_history` VALUES (1117328400, 1, 0, 1, 0, 0);
INSERT INTO `phpbb2_site_history` VALUES (1117339200, 1, 0, 2, 0, 0);
INSERT INTO `phpbb2_site_history` VALUES (1117346400, 2, 0, 0, 0, 0);
INSERT INTO `phpbb2_site_history` VALUES (1117360800, 3, 0, 1, 0, 0);
INSERT INTO `phpbb2_site_history` VALUES (1117364400, 4, 0, 2, 0, 0);
INSERT INTO `phpbb2_site_history` VALUES (1117368000, 4, 0, 1, 0, 1);
INSERT INTO `phpbb2_site_history` VALUES (1117371600, 5, 0, 2, 0, 1);
INSERT INTO `phpbb2_site_history` VALUES (1117375200, 6, 0, 2, 0, 0);
INSERT INTO `phpbb2_site_history` VALUES (1117378800, 7, 0, 1, 0, 0);
INSERT INTO `phpbb2_site_history` VALUES (1117382400, 7, 0, 0, 0, 2);
INSERT INTO `phpbb2_site_history` VALUES (1117386000, 8, 0, 1, 0, 0);
INSERT INTO `phpbb2_site_history` VALUES (1117389600, 8, 0, 2, 0, 1);
INSERT INTO `phpbb2_site_history` VALUES (1117393200, 9, 0, 2, 0, 0);

und daraus möchte ich jetzt gerne ein diagram machen (excel)

danke kolja
Das Leben ist unberechenbar - deshalb ist Improvisation wichtiger als Planung!

Es ist besser zu geben, als zu leihen, und kostet ungefähr gleichviel.

.: Münsters Reggae Forum :.
Benutzeravatar
CatZe
Mitglied
Beiträge: 514
Registriert: 30.11.2004 11:46
Kontaktdaten:

Beitrag von CatZe »

GreetZ
Cat
Benutzeravatar
kolja
Mitglied
Beiträge: 1546
Registriert: 13.05.2005 16:39
Wohnort: münster

Beitrag von kolja »

danke für die schnelle antwort

aber auf diese seite bin ich durch google auch schon gestossen
leider wird mir da aber keine lösung raus ersichtlich

mein problem ist, dass ich über 300 von den zeilen habe und iun jeder der timestamp umgerechnet werden muss

kolja
Das Leben ist unberechenbar - deshalb ist Improvisation wichtiger als Planung!

Es ist besser zu geben, als zu leihen, und kostet ungefähr gleichviel.

.: Münsters Reggae Forum :.
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

  • In Excel: Versuch mal die Formel

    Code: Alles auswählen

    =DATUM(1970;1;1)+(B1/86400)
    wobei B1 auf den Timestamp verweist
  • Direkt in phpMyAdmin: Mit dem Aufruf

    Code: Alles auswählen

    FROM_UNIXTIME(timestamp)
    im SQL-Statement kannst du das direkt in einem lesbaren Format ausgeben lassen
Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Benutzeravatar
kolja
Mitglied
Beiträge: 1546
Registriert: 13.05.2005 16:39
Wohnort: münster

Beitrag von kolja »

danke für die beiden ansätze

der in excel funktioniert !!!

aber den in phpmyadmin verstehe ich nicht so ganz
wo muss ich den einbringen ??

kolja
Das Leben ist unberechenbar - deshalb ist Improvisation wichtiger als Planung!

Es ist besser zu geben, als zu leihen, und kostet ungefähr gleichviel.

.: Münsters Reggae Forum :.
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag von fanrpg »

na ja wenn du so viele Zeilen hast würde ich die auslesen und einer Schleife ausrechnen legen so ungefähr:

Code: Alles auswählen

$datum = array();
$sql = "SQL";
$result = $db->sql_query($sql);
while($row = $db->sql_fetchrow($result))
{
$datum[] = date("d.m.Y H:i", $row['timestamp']);
}
Dann musst du später den Array nur noch ausgeben lassen :wink:
Benutzeravatar
kolja
Mitglied
Beiträge: 1546
Registriert: 13.05.2005 16:39
Wohnort: münster

Beitrag von kolja »

thx@fanrpg den suchte ich eigentlich

aber das mit ecxel ist noch ein bischen komfortabeler

nur bekomme ich mehrere einträge pro tag ...

wie schaffe ich es denn jetzt das ich pro tag nur eine zeile habe mit den werten des gesamten tages ??

hier mal ein ausschnit der excel tabelle

Code: Alles auswählen

datum	unix time stamp	reg	hidden	guest	topics	posts
28.05.2005	1117306800	11	1	2	2	0
28.05.2005	1117310400	11	1	1	0	0
28.05.2005	1117314000	12	1	2	0	0
28.05.2005	1117317600	1	0	0	0	0
29.05.2005	1117324800	1	0	1	0	0
29.05.2005	1117328400	1	0	1	0	0
29.05.2005	1117339200	1	0	2	0	0
29.05.2005	1117346400	2	0	0	0	0
29.05.2005	1117360800	3	0	1	0	0
29.05.2005	1117364400	4	0	2	0	0
29.05.2005	1117368000	4	0	1	0	1
29.05.2005	1117371600	5	0	2	0	1
29.05.2005	1117375200	6	0	2	0	0
29.05.2005	1117378800	7	0	1	0	0
29.05.2005	1117382400	7	0	0	0	2
29.05.2005	1117386000	8	0	1	0	0
29.05.2005	1117389600	8	0	2	0	1
29.05.2005	1117393200	9	0	2	0	0
29.05.2005	1117396800	10	0	2	1	0
29.05.2005	1117400400	11	0	1	0	0
29.05.2005	1117404000	3	0	1	0	5
29.05.2005	1117407600	3	0	1	0	1
30.05.2005	1117414800	3	0	1	0	0
30.05.2005	1117436400	6	0	6	0	0
30.05.2005	1117440000	7	0	5	1	2
30.05.2005	1117443600	7	0	1	0	0
30.05.2005	1117450800	8	0	1	0	0
30.05.2005	1117458000	8	0	2	0	0
30.05.2005	1117461600	9	0	4	0	1
30.05.2005	1117465200	9	0	1	0	0
30.05.2005	1117468800	9	0	3	2	0
30.05.2005	1117472400	11	0	3	0	0
Das Leben ist unberechenbar - deshalb ist Improvisation wichtiger als Planung!

Es ist besser zu geben, als zu leihen, und kostet ungefähr gleichviel.

.: Münsters Reggae Forum :.
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag von fanrpg »

Code: Alles auswählen

$datum = array(); 
$sql = "SQL WHERE datum = '". date('d.m.Y', time()) ."'"; 
$result = $db->sql_query($sql); 
while($row = $db->sql_fetchrow($result)) 
{ 
$datum[] = date("d.m.Y H:i", $row['timestamp']); 
}
Dann liest er nur den aktuellen Tag aus, das kannst du dann anpassen wie du willst.
Benutzeravatar
kolja
Mitglied
Beiträge: 1546
Registriert: 13.05.2005 16:39
Wohnort: münster

Beitrag von kolja »

@fanrpg

hab mich gerade ein wenig mit dem php code beschäftigt, hab aber leider keien konkrete idee wie ich den benutzen muss

kolja

p.s. wie gesagt, ist genau das was ich brauche

edit,
der ansatz ist doch in einem script die datenbank abzufragen, alle zeilen in einem array zu speichern, darüber deine schleife laufen lassen, und dann ausgeben lassen

soweit so gut

ich werd mich mal mit dem 1. punkt auseinandersetzen

kolja
Das Leben ist unberechenbar - deshalb ist Improvisation wichtiger als Planung!

Es ist besser zu geben, als zu leihen, und kostet ungefähr gleichviel.

.: Münsters Reggae Forum :.
Benutzeravatar
kolja
Mitglied
Beiträge: 1546
Registriert: 13.05.2005 16:39
Wohnort: münster

Beitrag von kolja »

ok punkt 1 ist erledigt

nur bekomme ich die daten nicht in einen array um sie für deinen code bereitzustellen

hier mal mein "code zusammen geklaue":


Code: Alles auswählen

<?php
$db_host   =       "hier";
$db_user   =       "ich";
$db_pass   =       "geheim";

$datab  =          "tabelle";


function print_result_table($result){
// hier das richtige schreiben
}

// Hauptprogramm

/* Verbindung zur Datenbank aufbauen */
$db = @mysql_connect($db_host,$db_user,$db_pass)
      or die(mysql_error());
@mysql_select_db($datab,$db) or die(mysql_error());

/* HTML-Startcode ausgeben */
echo "<html>\n<body>\n";

/* SQL-Abfrage */

$ergebnis = mysql_query ("SELECT * FROM phpbb2_site_history") or die ("SQL-Fehler"); 	
while ($zeile = mysql_fetch_array($ergebnis))
{
$var=$zeile['date'] ;
$var1=$zeile['reg'] ;
$var2=$zeile['hidden'] ;
$var3=$zeile['guests'] ;
$var4=$zeile['new_topics'] ;
$var5=$zeile['new_posts'] ;


echo "$var $var1 $var2 $var3 $var4 $var5 <BR>";
} 	
mysql_close ();
 ?>
aber das sollte für heute erstmal reichen

gute nacht kolja
Das Leben ist unberechenbar - deshalb ist Improvisation wichtiger als Planung!

Es ist besser zu geben, als zu leihen, und kostet ungefähr gleichviel.

.: Münsters Reggae Forum :.
Antworten

Zurück zu „Coding & Technik“