data vergelijken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Martijn Thomas

Martijn Thomas

24/10/2008 14:25:00
Quote Anchor link
Het is de bedoeling dat php aangeeft als de getoonde datum kleiner is als vandaag. Echter bij een aantal data doet hij het goed, maar mij 06-11-2008 doet hij het niet:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
// mktime(uur,minuut,seconde,maand,dag,jaar)

if(date('d-m-Y', mktime(0,0,0,11,06,2008)) < date('d-m-Y')) {
    echo date('d-m-Y', mktime(0,0,0,11,06,2008)) . "<" . date('d-m-Y');
}

else {
    echo date('d-m-Y', mktime(0,0,0,11,06,2008)) . "is inderdaad groter dan " . date('d-m-Y');// 06-11-2008 (volgende maand) is natuurlijk groter dan 24-10-2008 (vandaag)
}
?>


Waarbij de verwachte output toch echt "11-06-2008 is inderdaad groter dan 24-10-2008" is. Maar vreemd genoeg wordt getoond "06-11-2008 < 24-10-2008".

Waar ga ik de fout in...
 
PHP hulp

PHP hulp

18/11/2024 05:33:19
 
Joren de Wit

Joren de Wit

24/10/2008 14:33:00
Quote Anchor link
Jij bent dan ook geen data met elkaar aan het vergelijken, maar strings. En dan komt 06 inderdaad voor 24...

Vergelijk dus de timestamps met elkaar:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if(mktime(0, 0, 0, 11, 06, 2008) < time())
{

    echo date('d-m-Y', mktime(0,0,0,11,06,2008)) . "<" . date('d-m-Y');
}

?>
 
Eddy E

Eddy E

24/10/2008 14:36:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if(strtotime($jouwdatum) < time())
 {

 echo 'Je datum van ' . $jouwdatum . ' is nog toekomst!';
 }

?>


Nu kan je dus ook gewoon 15-1-2009 20:38:22 opgeven.
Of 23:02:37 (zal automatisch vandaag worden!) bijvoorbeeld.
Dat mktime() is dan niet meer nodig.
 
Martijn Thomas

Martijn Thomas

24/10/2008 14:42:00
Quote Anchor link
thnx!

Maar nu zit ik (door het gebruik van time()) met het probleem hoe toon ik aan dat mktime(0,0,0,10,24,2008)) gelijk is aan vandaag?

met mktime(...) == time() geeft hij dat nl niet aan...
 
- SanThe -

- SanThe -

24/10/2008 14:46:00
Quote Anchor link
Groter dan en kleiner dan zullen niet werken, maar == wel
if(date('d-m-Y', mktime(0,0,0,11,06,2008)) == date('d-m-Y')) {

Edit: Als je het 'standaard' format gebruikt werkt alles.
if(date('Ymd', mktime(0,0,0,11,06,2008)) < date('Ymd')) {
if(date('Ymd', mktime(0,0,0,11,06,2008)) > date('Ymd')) {
if(date('Ymd', mktime(0,0,0,11,06,2008)) == date('Ymd')) {
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Joren de Wit

Joren de Wit

24/10/2008 14:47:00
Quote Anchor link
@MThomas: Je zou dan beter strtotime() gebruiken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
var_dump(strtotime('today') == strtotime('24-10-2008')); // bool(true)
?>
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 



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.