[PHP+MySQL] problemen met TIMESTAMP en DATE

Pagina: 1
Acties:

  • decramy
  • Registratie: December 2001
  • Laatst online: 27-08 23:06

decramy

root@birdie:~#

Topicstarter
ik voeg in m`n databeest een nieuwe rij toe, waaronder een veld TIMESTAMP(14), waar ik NULL in gooi.

Dan kijg ik 20021117195336. Dit klopt...

Dan wil ik het weer leesbaar maken, door
date("D, dM Y H:i:s", 20021117195336);

deze geeft alleen dan als datum Tue, 19Jan 2038 04:14:07...

Op http://www.php.net/date heb ik al gelezen dat dit de maximale datum is...

Alleen staat daar niet hoeveel tekens die timestamp nodig heeft.... :(

weet iemand dit?

20*375Wp met Enphase IQ7+ micro's | Stiebel Eltron HGE Water/Water WP 9kW | Tesla M3, powered by SmartEVSE | Servertje @ www.coloclue.net


  • ludo
  • Registratie: Oktober 2000
  • Laatst online: 01-03 18:17
DATE_FORMAT(m.message_time, '%d-%m-%Y %H:%i'), zo formatteer ik een timestamp. Misschien heb je er wat aan :Y)

Probeer ook eens DATE_FORMAT ipv DATE

Verwijderd

Maak van je TIMESTAMP(14) een INT veld en flikker er time() in.
Dan werkt je date functie wel.

  • decramy
  • Registratie: December 2001
  • Laatst online: 27-08 23:06

decramy

root@birdie:~#

Topicstarter
Verwijderd schreef op 17 november 2002 @ 20:15:
Maak van je TIMESTAMP(14) een INT veld en flikker er time() in.
Dan werkt je date functie wel.
maar met time kun je TOTAAL niet zien welke datum t is....

met TIMESTAMP() wel...
ik wel best van een TIMESTAMP een TIME maken, als ik wist hoe....

20*375Wp met Enphase IQ7+ micro's | Stiebel Eltron HGE Water/Water WP 9kW | Tesla M3, powered by SmartEVSE | Servertje @ www.coloclue.net


  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 21-08 19:22
De timestamp van MySQL is wat anders dan die van PHP, die gebruikt de unix timestamp.
In Mysql heb je een functie UNIX_TIMESTAMP(), en om van een unix timestamp naar een andere is er FROM_UNIXTIME().
Je kunt ook mbv van substr die MySql timestamp splitten en dan met mktime een unix timestamp te voorschijn toveren.

Verwijderd

Doe gewoon zoals daniel_hoenderdos al zei: Maak de tijd met de PHP functie time() en sla deze op in een INT veld... date() kan wel overweg met deze tijd en het is sneller dan de andere manieren die hier aangedragen worden.

  • decramy
  • Registratie: December 2001
  • Laatst online: 27-08 23:06

decramy

root@birdie:~#

Topicstarter
maar je kunt niet uit de UnixTimeStamp zelf zien welke datum het is in de database... Dat wil ik dus wel kunnen...

MySQL Timestamp was prachtig, maar daar kan PHP niet mee overweg :?

20*375Wp met Enphase IQ7+ micro's | Stiebel Eltron HGE Water/Water WP 9kW | Tesla M3, powered by SmartEVSE | Servertje @ www.coloclue.net


Verwijderd

Als je het perse wilt, zie dan de MySQL functie UNIX_TIMESTAMP().

  • RedRose
  • Registratie: Juni 2001
  • Niet online

RedRose

Icebear

decramy schreef op 17 November 2002 @ 20:36:
maar je kunt niet uit de UnixTimeStamp zelf zien welke datum het is in de database... Dat wil ik dus wel kunnen...

MySQL Timestamp was prachtig, maar daar kan PHP niet mee overweg :?
MySQL TimeStamp != Unix Timestamp:

Kijk hier en hier .

Je zal dus zelf, al naar gelang je zelf wilt, altijd moeten converteren.

Sundown Circus


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Verwijderd schreef op 17 November 2002 @ 20:15:
Maak van je TIMESTAMP(14) een INT veld en flikker er time() in.
Dan werkt je date functie wel.
Volgende vraag:
Ik wil mijn geboorte datum invoeren maar dat lukt niet....


Aantwoord:
Tja een timestamp gaat niet terug voor 1970....


Volgende vraag:
Ik wil alle items vanaf nu en 1 maand verder hoe doe ik dat?

Aantwoord:
Dat kan timestamp niet....


Mijn vraag aan jouw:
Weet je zeker dat je het naar een timestamp wil converteren? Heb je nagedacht over de mogelijke gevolgen?

Programmer - an organism that turns coffee into software.


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Toch is het allemaal heel eenvoudig:

Gebruik gewoon de MySQL timestamp als datatype voor je veld in je database. Mocht je er bewerkingen op uit willen voeren: gebruik de date en time functions van MySQL, en niet die van PHP. Mocht je toch heeeeeeeel graag een unix timestamp als uitvoer willen hebben, gebruik dan ook daarvoor de date en timefunctions van MySQL (in dit geval UNIX_TIMESTAMP en FROM_UNIXTIME om te converteren resp. naar en van een unix timestamp)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

waarom al alleszo moeilijk?, maak een date - timefield aan en knikker er een yyyy-mm-dd hh:mm:ss string in, gemakkelijk te maken.

als je de huidige tijd wilt kun je gewoon curdate() gebruiken dus zo,

"insertt into blaat(mndatum) values(curdate())"

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Verwijderd schreef op 19 november 2002 @ 21:30:
waarom al alleszo moeilijk?, maak een date - timefield aan en knikker er een yyyy-mm-dd hh:mm:ss string in, gemakkelijk te maken.

als je de huidige tijd wilt kun je gewoon curdate() gebruiken dus zo,

"insertt into blaat(mndatum) values(curdate())"
Goedemorgen.... >:)

Hij heeft problemen met er uithalen en niet met er in te stoppen.

En in een Timestamp veld geef je overhetalgemeen geen waarde op. Deze wordt door de db gevuld...

Programmer - an organism that turns coffee into software.

Pagina: 1