[php] mktime() vaag probleempje

Pagina: 1
Acties:

  • chuxiej
  • Registratie: Februari 2001
  • Laatst online: 13-07-2020
Ik probeer nu de datum in een timestamp om te zetten:
PHP:
1
<?// datum formaat: yymmddhhii (0203262330)// gooit alles in een array$date[H] = substr($row[datum],6,2);$date[m] = substr($row[datum],8,2);$date[d] = substr($row[datum],2,2);$date[M] = substr($row[datum],4,2);$date[Y] = substr($row[datum],0,2);// maakt het in netjes mktime() formaat$insert = $date[H] . "," .      $date[m] . ",0," .      $date[M] . "," .       $date[d] . ",20" .       $date[Y];// maak timestamp    $stamp = mktime($insert);?>

Nu staat de data in een mysql database.

Wat nu het probleem is dit krijg ik als output:

ID | var $stamp | var $insert
-----------------------------------------
1: 1017131243 9,20,0,19,11,2001
2: 1017134843 10,0,0,19,11,2001
3: 1017116843 5,57,0,23,11,2001
4: 1017120443 6,39,0,26,11,2001
5: 1017109643 3,15,0,26,11,2001
6: 1017134843 10,0,0,2,12,2001
7: 1017131243 9,11,0,4,12,2001
8: 1017134843 10,4,0,17,12,2001
9: 1017134843 10,56,0,7,1,2002
10: 1017106043 2,49,0,10,1,2002
11: 1017116843 5,15,0,21,1,2002
12: 1017124043 7,56,0,7,2,2002
13: 1017109643 3,32,0,25,3,2002
14: 1017109643 3,44,0,25,3,2002

De timestamps kloppen dus gek genoeg niet..
Weet iemand wat ik fout doe?

www.dannyhiemstra.nl


  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
http://www.php.net/manual/en/function.mktime.php

mktime heeft 6/7 int-argumenten, geen string argument, dus je zou eigenlijk een foutmelding moeten krijgen :?

wat klopt er niet aan de timestamps eigenlijk?

  • Grum
  • Registratie: Juni 2001
  • Niet online
hij krijgt al een warning op de eerste paar regels

maar zo te zien gebruikt ie geen error_reporting :)

  • chuxiej
  • Registratie: Februari 2001
  • Laatst online: 13-07-2020
Heb er een andere output uitgehaald en error_reporting(63); ingezet en die geeft geen errors

output:
ID | timestamp | $insert var | datum uit db | datum uit de timestamp
----------------------------------------------------------------
1: 1017132872-9,20,0,19,11,2001||9:20 11-19-01||09:54 26-03-02
2: 1017136472-10,0,0,19,11,2001||10:0 11-19-01||10:54 26-03-02
3: 1017118472-5,57,0,23,11,2001||5:57 11-23-01||05:54 26-03-02
4: 1017122072-6,39,0,26,11,2001||6:39 11-26-01||06:54 26-03-02
5: 1017111272-3,15,0,26,11,2001||3:15 11-26-01||03:54 26-03-02
6: 1017136472-10,0,0,2,12,2001||10:0 12-2-01||10:54 26-03-02
7: 1017132872-9,11,0,4,12,2001||9:11 12-4-01||09:54 26-03-02
8: 1017136472-10,4,0,17,12,2001||10:4 12-17-01||10:54 26-03-02
9: 1017136472-10,56,0,7,1,2002||10:56 1-7-02||10:54 26-03-02
10: 1017107672-2,49,0,10,1,2002||2:49 1-10-02||02:54 26-03-02
11: 1017118472-5,15,0,21,1,2002||5:15 1-21-02||05:54 26-03-02
12: 1017125672-7,56,0,7,2,2002||7:56 2-7-02||07:54 26-03-02
13: 1017111272-3,32,0,25,3,2002||3:32 3-25-02||03:54 26-03-02
14: 1017111272-3,44,0,25,3,2002||3:44 3-25-02||03:54 26-03-02

Die datum uit de db en de datum uit de timestamp horen gelijk te zijn..

www.dannyhiemstra.nl


  • Grum
  • Registratie: Juni 2001
  • Niet online
gebruik eens voor de grap error_reporting(E_ALL);

wedden dattie op deze line een Warning geeft:
code:
1
$date[H] = substr($row[datum],6,2);

iets in de trant van "unknown constant H assuming 'H'"

just checked: je krijgt dit:
Warning: Use of undefined constant H - assumed 'H' in ... on line ...

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
code:
1
2
3
4
5
6
7
// datum formaat: yymmddhhii (0203262330)
// gooit alles in een array
$date[H] = substr($row[datum],6,2);
$date[m] = substr($row[datum],8,2);
$date[d] = substr($row[datum],2,2);
$date[M] = substr($row[datum],4,2);
$date[Y] = substr($row[datum],0,2);

dat klopt toch ook niet :?

bv. $date[M] = substr($row[datum],4,2); moet zijn 2,2. (en eigenlijk moet het ["M"] zijn)

verder moet je gewoon ff error_reporting op E_ALL zetten (zie Grum's sig) en de parameters aan mktime meegeven zoals het hoort.
Pagina: 1