Verschil tussen 2 strings...
timo - 15/02/2006 12:44
PHP ver gevorderde
Ik wil dat als ik een datum uit een database haal ik die kan vergelijken met de datum die het nu is, en dat er dan als output de hoeveelheid dagen-maanden-jaren komt.... iemand enig idee?
10 antwoorden
Gesponsorde links
Gerard - 15/02/2006 12:49
Ouwe rakker
Hoe is de datum in je database opgeslagen? (formaat)
timo - 15/02/2006 12:49
PHP ver gevorderde
is een DATE veld
Ontani - 15/02/2006 12:50
-1
PHP.net: date
contactbablu at yahoo dot com Schreef:
Here is a function which calculate date difference between provided one and current time stamp.
<?
function date_format($tstamp)
{
$y=date('Y',$tstamp);
$m=date('n',$tstamp);
$d=date('d',$tstamp);
$h=date('G',$tstamp);
$i=date('i',$tstamp);
$s=date('s',$tstamp);
//c stand for current
//
//*************** change value between * A/C to your needs
$cy=date('Y');
$cm=date('n');
$cd=date('d');
$ch=date('G');
$ci=date('i');
$cs=date('s');
//
if(is_leep($cy))
{
$marray=array('1'=>31,'2'=>29,'3'=>31,
'4'=>30,'5'=>31,'6'=>30,
'7'=>31,'8'=>31,'9'=>30,
'10'=>31,'11'=>30,'12'=>31);
}
else
{
$marray=array('1'=>31,'2'=>28,'3'=>31,
'4'=>30,'5'=>31,'6'=>30,
'7'=>31,'8'=>31,'9'=>30,
'10'=>31,'11'=>30,'12'=>31);
}
//
//for second
if($cs >= $s)
{
$s=$cs-$s;
}
else
{
$ci--;
$cs=$cs + 60;
$s=$cs-$s;
}
//for minutes
if($ci >= $i)
{
$i=$ci-$i;
}
else
{
$ch--;
$ci=$ci + 60;
$i=$ci-$i;
}
//for hour
if($ch >= $h)
{
$h=$ch-$h;
}
else
{
$cd--;
$ch=$ch + 60;
$h=$ch-$h;
}
//days
if($cd >= $d)
{
$d=$cd-$d;
}
else
{
$temp=$marray[$cm];
$cm--;
$cd=$cd + $temp;
$d=$cd-$d;
}
//for month
if($cm >= $m)
{
$m=($cm - $m);
}
else
{
$cy--;
$cm=$cm + 12;
$m=$cm-$m;
}
//for year
$y=$cy-$y;
//
$date=$y." Year-".$m." Month-".$d." Days<br>".$h." Hours -".$i." Min-".$s." Second";
return $date;
}
//check whether leep year or not
function is_leep($y)
{
if($y % 4 == 0 && $y % 100 != 0)
{
return 1;
}
if($y % 100 == 0 && $y % 400 == 0)
{
return 1;
}
return 0;
}
echo date_format(123456);
?>
<?
function date_format( $tstamp )
{
//c stand for current
//
//*************** change value between * A/C to your needs
//
if ( is_leep( $cy ) )
{
$marray = array ( '1' => 31 , '2' => 29 , '3' => 31 , '4' => 30 , '5' => 31 , '6' => 30 ,
'7' => 31 , '8' => 31 , '9' => 30 ,
'10' => 31 , '11' => 30 , '12' => 31 ) ;
}
else
{
$marray = array ( '1' => 31 , '2' => 28 , '3' => 31 , '4' => 30 , '5' => 31 , '6' => 30 ,
'7' => 31 , '8' => 31 , '9' => 30 ,
'10' => 31 , '11' => 30 , '12' => 31 ) ;
}
//
//for second
if ( $cs >= $s )
{
$s = $cs - $s ;
}
else
{
$ci --;
$cs = $cs + 60 ;
$s = $cs - $s ;
}
//for minutes
if ( $ci >= $i )
{
$i = $ci - $i ;
}
else
{
$ch --;
$ci = $ci + 60 ;
$i = $ci - $i ;
}
//for hour
if ( $ch >= $h )
{
$h = $ch - $h ;
}
else
{
$cd --;
$ch = $ch + 60 ;
$h = $ch - $h ;
}
//days
if ( $cd >= $d )
{
$d = $cd - $d ;
}
else
{
$temp = $marray [ $cm ] ;
$cm --;
$cd = $cd + $temp ;
$d = $cd - $d ;
}
//for month
if ( $cm >= $m )
{
$m = ( $cm - $m ) ;
}
else
{
$cy --;
$cm = $cm + 12 ;
$m = $cm - $m ;
}
//for year
$y = $cy - $y ;
//
$date = $y . " Year-" . $m . " Month-" . $d . " Days<br>" . $h . " Hours -" . $i . " Min-" . $s . " Second" ;
return $date ;
}
//check whether leep year or not
function is_leep( $y )
{
if ( $y % 4 == 0 && $y % 100 != 0 )
{
return 1 ;
}
if ( $y % 100 == 0 && $y % 400 == 0 )
{
return 1 ;
}
return 0 ;
}
echo date_format
( 123456 ) ; ?>
timo - 15/02/2006 12:53
PHP ver gevorderde
waar moet ik het zo veranderen dat ik mijn datum uit db haal?
timo - 15/02/2006 12:58
PHP ver gevorderde
werkt niet:S
timo - 15/02/2006 13:41 (laatste wijziging 15/02/2006 13:55)
PHP ver gevorderde
2006-03-21
EDIT: opgelost, hieronder m'n code:
<?php
$afloop = explode("-",$result['afloopdatum']);
$jaar = $afloop[0];
$maand = $afloop[1];
$dag = $afloop[2];
$year = $jaar - date("Y");
$month = $maand - date("m");
$day = $dag - date("d");
$looptaf = $day."-".$month."-".$year;
?>
<?php
$afloop = explode ( "-" , $result [ 'afloopdatum' ] ) ; $jaar = $afloop [ 0 ] ;
$maand = $afloop [ 1 ] ;
$dag = $afloop [ 2 ] ;
$year = $jaar - date ( "Y" ) ; $month = $maand - date ( "m" ) ; $looptaf = $day . "-" . $month . "-" . $year ;
?>
webstab - 15/02/2006 14:03 (laatste wijziging 15/02/2006 14:04)
PHP ver gevorderde
<?php
// niet getest en weet ook niet of het goed werkt, maar misschien ben je er iets mee
$datum = "2006-01-02";
list($y, $mo, $d) = explode("-", $datum);
$verschil = time()-mktime(0, 0, 0, $mo, $d, $y);
echo date("d",$verschil)." dagen en ".date("m",$verschil)." maanden en ".(date("Y",$verschil)-1970)." jaren";
?>
<?php
// niet getest en weet ook niet of het goed werkt, maar misschien ben je er iets mee
$datum = "2006-01-02" ;
echo date ( "d" , $verschil ) . " dagen en " . date ( "m" , $verschil ) . " maanden en " . ( date ( "Y" , $verschil ) - 1970 ) . " jaren" ; ?>
Edit: Te laat
Dieter_be - 15/02/2006 15:09
Nieuw lid
unix timestamps all the way... de enige logische manier om met datums om te gaan, en ge kunt er alle kanten mee uit
Gesponsorde links
Dit onderwerp is gesloten .