datum (Opgelost)
ArcanA - 08/02/2009 19:15 (laatste wijziging 08/02/2009 19:16)
PHP beginner
Hallo,
Kan iemand me even uitleggen hoe ik datums van elkaar kan vergelijken, dus als $b al voorbij is, met er komen echo 'Deze datum is voorbij!';
$a = date("Y-m-d");
$b = '2008-08-02';
Ik veronderstel dat $a de datum van nu is?
Ik weet wel als het vandaag die dag is dat ik
$a == $b moet doen maar dit kan toch niet kloppen bij groter of kleiner?
Mvg,
ArcanA
12 antwoorden
Gesponsorde links
vinTage - 08/02/2009 19:20
Nieuw lid
<?php
$b = "2009-02-07";
if(date("Y-m-d") > $b)
{
echo 'te laat';
}
else
{
echo 'je kan nog';
}
?>
<?php
$b = "2009-02-07" ;
{
}
else
{
}
?>
svm - 08/02/2009 20:05
PHP ver gevorderde
Zelf vind ik het altijd het makkelijkst om met UNIX timestamp te werken:
<?php
$datum = mktime(0,0,0,2,8,2009); //uur, minuut, sec, maand, dag, jaar
if(time() < $datum) {
echo 'De datum is nog niet geweest.';
}else{
echo 'De datum is al voorbij.';
}
?>
<?php
$datum = mktime ( 0 , 0 , 0 , 2 , 8 , 2009 ) ; //uur, minuut, sec, maand, dag, jaar echo 'De datum is nog niet geweest.' ; } else {
echo 'De datum is al voorbij.' ; }
?>
ArcanA - 08/02/2009 20:43 (laatste wijziging 08/02/2009 20:44)
PHP beginner
Oké dat lukt van VinTage, ook enig idee waarom ik niet kan optellen?
$aantalfixpas = $_POST['aantalfixpas'];
if ($aantalfixpas == 3) {
$nu = date("Y-m-d");
$vervaldatum = '00-03-00';
$result = $nu + $vervaldatum;
}
$aantalfixpas = $_POST [ 'aantalfixpas' ] ;
if ( $aantalfixpas == 3 ) {
$vervaldatum = '00-03-00' ;
$result = $nu + $vervaldatum ;
}
ik probeer 3 maanden bij te tellen...
Joost - 08/02/2009 20:48
PHP expert
Dat is iets wat niet werkt in PHP, de parser ziet het dan niet meer als een datum
Probeer dit:
$result = date("d-m-Y" , strtotime("+3 month" ));
ArcanA - 08/02/2009 22:15 (laatste wijziging 08/02/2009 22:16)
PHP beginner
Bedankt, alles is tot nu toe gelukt, nu heb ik een zeer moeilijk probleem;
Ik maak een input , de value roep ik op in de database.
<input type="text" value="'.$startpasss.'" name="startpas" />
<input type = "text" value = "'.$startpasss.'" name = "startpas" / >
//$data verwijst naar een SELECT query
$startpasss = strtotime($data['u_startpas']);
$startpasss = date("j.n.y",$startpasss);
//$data verwijst naar een SELECT query
$startpasss = strtotime ( $data [ 'u_startpas' ] ) ; $startpasss = date ( "j.n.y" , $startpasss ) ;
In de database staat een Y.d.m datum type , de gebruiker wil hem alleen aan kunnen passen in j.n.y formaat, het veranderen in database is voor mij echt geen optie. Nu heb ik de value van de input al kunnen veranderen in j.n.y type. Enkel hoe moet ik dit nu weer in Y.d.m type in de database steken?
Iemand een idee?
marten - 08/02/2009 22:22
Beheerder
Ook gewoon weer met date?
$new = date("Y.d.m", $je_andere_tijd);
$new = date ( "Y.d.m" , $je_andere_tijd ) ;
En probeer toch aub je datum te veranderen naar een datetime veld of een date veld.
bekijk ook de tutorials die ik hierover geschreven heb.
deel 1
deel 2
Joost - 08/02/2009 22:24
PHP expert
$dateInput = $_POST['startpass'];
$UNIX = strtotime($dateInput);
$newDate = date("d-m-Y", $UNIX);
$dateInput = $_POST [ 'startpass' ] ;
$newDate = date ( "d-m-Y" , $UNIX ) ;
Je kan hem beter zo uit de database selecteren:
SELECT DATE_FORMAT(date, '%j-%n-%y') AS date FROM tabel;
SELECT DATE_FORMAT( date, '%j-%n-%y' ) AS date FROM tabel;
ArcanA - 08/02/2009 22:44
PHP beginner
@ marten:
Dus, dat komt overeen met:
<?php
$new = date("Y.d.m", '8.3.09');
?>
<?php
$new = date ( "Y.d.m" , '8.3.09' ) ; ?>
En ik moet veronderstellen dat 8.3.09 naar Y.d.m omzet?
marten - 08/02/2009 22:49
Beheerder
gebruik ook weer de functie PHP.net: strtotime .
Gebruik desnoods een explode op de punt en stel zelf je datum samen. Shit man iets meer initiatief kerel!
ArcanA - 08/02/2009 22:50
PHP beginner
Ik heb initiatief maar heb gewoon deze zaken nog nooit gedaan dus heb hier geen verstand van ;).
marten - 08/02/2009 22:51
Beheerder
Zoeken kan altijd , nadenken over mogelijke oplossingen kan ook altijd.
Gesponsorde links
Dit onderwerp is gesloten .