Fout met mktime

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Arthur Heijmen

Arthur Heijmen

14/04/2013 16:51:55
Quote Anchor link
Op regel 3 van het script,
wil ik een datum maken, min een dag.
dus kom ik op de datum van gisteren.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php

$dag_1
= mktime(0, 0, 0, date("d")-1, date("m"), date("y"));
$date_1 = date("Y-d-m", $dag_1);
$dag_2 = mktime(0, 0, 0, date("d")-2, date("m"), date("y"));
$date_2 = date("Y-d-m", $dag_2);

echo $date_1;
echo '<br />';
echo $date_2;

?>

Het is dus vandaag 2013-04-14.

De uitkomst date_1 = 2014-04-01, maar moet zijn = 2013-04-13.
De uitkomst date_2 = 2013-04-12, deze is wel goed.

Je zou dus zeggen dat het goed moet werken, maar dat doet het niet.
Als ik de lijst zou uit breiden, blijft alles goed op datum behalve date_1.
Hoe kan ik dit oplossen ?.
Gewijzigd op 14/04/2013 16:52:43 door Arthur Heijmen
 
PHP hulp

PHP hulp

28/04/2024 18:26:00
 
Joakim Broden

Joakim Broden

14/04/2013 17:01:31
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
    echo date('Y-m-d', strtotime('- 1 DAY'));
    echo date('Y-m-d', strtotime('- 2 DAY'));
?>
 
Willem vp

Willem vp

14/04/2013 18:16:45
Quote Anchor link
Let op de parametervolgorde bij mktime. Die is niet h,m,s,D,M,J, maar h,m,s,M,D,J.
Je hebt de dag en de maand dus omgewisseld...

Daarnaast zou ik voor dag en maand de versie zonder voorloopnul gebruiken, dus date('j') voor de dag en date('n') voor de maand.

Het probleem waar je wel tegenaan blijft lopen (tenzij je de oplossing van Hertog Jan gebruikt) is dat je aan het begin van de maand een 0 of -1 als dag krijgt en dat dus eigenlijk moet gaan doorrekenen in je maand- en jaarveld.
Gewijzigd op 14/04/2013 18:21:15 door Willem vp
 
Eddy E

Eddy E

15/04/2013 10:08:49
Quote Anchor link
En daarom is de manier van Hertog Jan gewoon veel beter.
Dat werkt ook schrikkeldagen, op 1 januari etc etc etc.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.