[PHP] Gewone datums omzetten naar timestamp

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo,

Ik zit met het volgende probleem:

Het probleem:
Ik heb een database van pak m beet 3000 nieuwsberichten. Omdat de stuctuur redelijk verouderd is hebben we besloten om een hele nieuwe database layout te maken enzo.

Ik loop nu tegen het volgende aan:

Alle datums staat in mysql opgeslagen op de volgende manier: 21-01-2003. We gaan nu werken met unix_timestamp dus dit moet om.

Wat heb ik zelf geprobeerd:
Ik heb op php.net gekeken of er iets mogelijk was dmv mktime. Ik heb helaas weinig kunnen vinden daar. Ook bood de search op arethusa mij geen uitkomst

Wat had ik zelf in gedachten::
Op de een of andere manier de datums omzetten naar een unix_timestamp. Dan een lijst met alle 3000 datums als unixtimstap. Het database veld datum verwijderen en opnieuw aanmaken. Dan de unixtimestamps als values invoeren.

Weet iemand hoe ik dit goed om kan zetten. De functie van php of een duw in de goede richting zou best wel gewenst zijn :+ Bedankt alvast :Y)

Acties:
  • 0 Henk 'm!

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 11-09 11:19

chem

Reist de wereld rond

Het kan iig via PHP:
PHP:
1
$timestamp = mktime(0,0,0,substr($row['date'],2,2),substr($row['date'],0,2),substr($row['date'],4));

Of als het ook een 1-1-2001 kan zijn (dus niet 01-01-2001):
PHP:
1
2
$date = explode('-',$row['date']);
$timestamp = mktime(0,0,0,$date[1],$date[0],$date[2]);


Via MySQL zou je dit ook voor elkaar moeten krijgen met wat datum en string functies. Is het niet toevallig een column van een bepaalde datumtype? Date, TIMESTAMP oid?

[ Voor 10% gewijzigd door chem op 24-01-2003 21:59 ]

Klaar voor een nieuwe uitdaging.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
chem schreef op 24 januari 2003 @ 21:58:
Het kan iig via PHP:
PHP:
1
$timestamp = mktime(0,0,0,substr($row['date'],2,2),substr($row['date'],0,2),substr($row['date'],4));

Of als het ook een 1-1-2001 kan zijn (dus niet 01-01-2001):
PHP:
1
2
$date = explode('-',$row['date']);
$timestamp = mktime(0,0,0,$date[1],$date[0],$date[2]);


Via MySQL zou je dit ook voor elkaar moeten krijgen met wat datum en string functies. Is het niet toevallig een column van een bepaalde datumtype? Date, TIMESTAMP oid?
Nee het is een varchar helaas :( . Bedankt voor je tips ga ik nu naar kijken :) .

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ok chem thanks die werken. Alleen nu zit ik nog met 200 berichten die deze notatie hebben:

Friday 02 March 2001

Heb je hier ook nog zo'n stukje code voor of is het onmogelijk om die notatie om te zetten :?

Acties:
  • 0 Henk 'm!

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 17-09 22:12
Kun je voor "Friday 02 March 2001" niet gewoon strtotime(); gebruiken? Zonder "Friday" creëert php er in iedergeval wel een unix_timestamp van.

Acties:
  • 0 Henk 'm!

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 11-09 11:19

chem

Reist de wereld rond

idd, met strotime() kan je daar wel wat mee doen. Of explode op ' ' (spatie) en maak een switch (else/if) voor de maand.

Klaar voor een nieuwe uitdaging.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ok. Dan ga ik daar mee aan de slag bedankt voor de antwoorden. Chem en Sybr_E-N :)
Pagina: 1