Timestampt - Zuigen

Status
Niet open voor verdere reacties.

acid007

Gebruiker
Lid geworden
13 jun 2002
Berichten
775
Goed ben ik weer, het zal eens niet.

Kijk deze code;

PHP:
            <?php
			
$timestamp = getdate($posts->dateline); 
echo date('Y-m-d H:i:s', $timestamp); 
		
			?>

In de database staat bij "dateline" dit: 20030508114924

Uitkomst (op de pagina): 1970-01-01 01:00:01

Wie snapt dit....??

INSERT INTO balbalabla ('NOW()' , nogoets)
dat werkt, timestamp komt er prima in.

Nu nog er uit!!!
 
Om data uit de db te halen, gebruik ik altijd

$get = mysql_query("SELECT dateline FROM tabel");
$output = mysql_fetch_array($get, MYSQL_ASSOC);

En dan:

print($output['dateline']);

Maar ik heb niet zoveel verstand van dates in db's, maar misschien via het bovenstaande de gegevens er uit halen.
 
ja maar jij hebt dan waarschijnlijk geen timestamp. Jij zet zeker de datum in een tekstvak ofzo

Injouw tabel staat dan zoiets als "08-05-2003"

bij mij dus niet :confused:
 
zucht... Waarom gebruik je zoiets? Dat gaat natuurlijk nooit werken.

Een timestamp in UNIX formaat is in seconden vanaf 1-1-1970 00:00:00. Een meer succesvol formaat zou 1052389214 zijn. Dat kun je door date() laten omzetten in een meer leesbaar formaat. Maar een MySQL timestamp proberen om te toveren met een timestamp functie van UNIX is natuurlijk hetzelfde als een koe met een paard vergelijken :p :rolleyes: :).

2 Oplossingen:

1. Verander bij het inserten in de database de timestamp door de functie time() in te voegen. En NIET "time()" maar gewoon zonder aanhalingstekens:

PHP:
<?php

mysql_query(time(), ..., ...)

?>

2. De moeilijkste, als er al heel veel timestamps op deze manier zijn dan kun je ze opsplitsen:

PHP:
<?php

$datestamp = "20030510161423";

$year = substr($datestamp, 0, 4);
$month = substr($datestamp, 4, 2);
$day = substr($datestamp, 6, 2);
$hour = substr($datestamp, 8, 2);
$min = substr($datestamp, 10, 2);
$sec = substr($datestamp, 12, 2);

$stamp_new = $day."-".$month."-".$year.", ".$hour.":".$min.":".$sec;

echo $stamp_new;

?>

Het is een manier maar als je ff kan, doe de eerste dan
 
bij voorkeur oplossing 1, zou je de code even willen uitleggen

time() snap ik wel, doh :P
maar wat moet er nog meer achter dan, ik neem aan dat je een INSERT bedoelt dus:

PHP:
mysql_query(INSERT INTO (tijd) VALUES ("time()");
 
Zo, 1 keer is genoeg :D :p. Maarruh, je doet in je post mét aanhalingstekens... Moet zonder...
 
Als je iets in de database invoegt, maar je neemt de timestamp niet in je query op, dan wordt de tijd van de timestamp automatisch de tijd van inserten.

Uithalen kan als volgt:
PHP:
$query = mysql_query("SELECT DATEFORMAT(kolom, '%d-%m-%Y') AS date FROM tabel"); 

/* Timestamp uit de kolom 'kolom' halen uit de tabel 'tabel'.
Hij wordt als volgt gepresenteerd: dag-maand-jaar.
De timestamp krijgt de waarde 'date'.*/

$output = mysql_fetch_assoc($query);
print($output['date']); // print de uit de database gehaalde waarde, date dus.
 
Geplaatst door chrisgeerdink
Uithalen kan als volgt:
PHP:
$query = mysql_query("SELECT DATEFORMAT(kolom, '%d-%m-%Y') AS date FROM tabel"); 

/* Timestamp uit de kolom 'kolom' halen uit de tabel 'tabel'.
Hij wordt als volgt gepresenteerd: dag-maand-jaar.
De timestamp krijgt de waarde 'date'.*/

$output = mysql_fetch_assoc($query);
print($output['date']); // print de uit de database gehaalde waarde, date dus.
late reactie, maar ik ben ook ff aan't prutsen...heb er ook probs mee...zo haal je hem eruit, maar hoe zet je hem ERIN ?
want wanneer ik dit doe:
PHP:
mysql_query("INSERT INTO testtijd (tijd) VALUES (time())");
dan komt er ook echt puur "time()" in te staan...geen 10-cijferig getal :/
 
Laatst bewerkt:
Geplaatst door JPeetje
late reactie, maar ik ben ook ff aan't prutsen...heb er ook probs mee...zo haal je hem eruit, maar hoe zet je hem ERIN ?
want wanneer ik dit doe:
PHP:
mysql_query("INSERT INTO testtijd (tijd) VALUES (time())");
dan komt er ook echt puur "time()" in te staan...geen 10-cijferig getal :/

En zo:

PHP:
$tijd = time();

mysql_query("INSERT INTO testtijd (tijd) VALUES ('$tijd')");
 
jep, dan krijg ik idd wel een mooi cijfer d'r in :)
maar ophalen met de code van chris:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in e:\www\apache\htdocs\nieuw\testtijd2.php on line 8

daar wordt je niet blij van :p
 
Ik denk dat er een foutje in je script zit. Zou je hem kunnen posten?
 
is zelfde als die van Chris, maar ok :D
PHP:
<?
$query = mysql_query("SELECT DATEFORMAT('tijd', '%d-%m-%Y') AS date FROM testtijd"); 

$output = mysql_fetch_assoc($query);
print($output['date']);
?>

tijd = kolom
testtijd = tabel
include("connect.php") staat erboven ;)
 
Laatst bewerkt:
php.net:

Als je zowel de numerieke als de associatieve indices nodig hebt, gebruik dan mysql_fetch_array().

Weet niet wat het precies inhoudt, maar je kan het proberen ;)

PHP:
mysql_fetch_array($query, MYSQL_ASSOC);
 
PHP:
$output = mysql_fetch_array($query, MYSQL_ASSOC);
print($output['date']);
[foutmelding]
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in e:\www\apache\htdocs\nieuw\testtijd2.php on line 8
[/foutmelding]

:D
 
Heb je MySQL, PHP en Apache wel goed geinstalleerd etc.? Ik krijg namelijk het idee dat het daaraan ligt.

Jammer dat ik het niet even zelf kan testen :(
 
Geplaatst door Saviola
Heb je MySQL, PHP en Apache wel goed geinstalleerd etc.? Ik krijg namelijk het idee dat het daaraan ligt.

Jammer dat ik het niet even zelf kan testen :(
duh :rolleyes::D
alles werkt prima, alleen dit nie...
voor zover ik weet klopt die code niet hoor...
btw. hoezo kun je het zelf nie testen ? werkt jou php niet ? :p:D
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan