It worked before PHP was updated to the newer version, I have searched and read about a million other date related problems on different forums including this one... I must be looking in the wrong place or something 'cause I can't figure out why it won't give me the right difference between dates...I think it must not be getting the right starting time but my pathetic attempts to fix this haven't helped!
<?
function dow($dd,$mm,$yy)
{
$res=($yy+(int)($yy-1)/4-(int)($yy-1)/100+(int)($yy-1)/400+julianday($dd,$mm,$yy))%7;
if($res==1)
$res="Sunday";
elseif($res==2)
$res="Monday";
elseif($res==3)
$res="Tuesday";
elseif($res==4)
$res="Wednesday";
elseif($res==5)
$res="Thursday";
elseif($res==6)
$res="Friday";
else
$res="Saturday";
return($res);
}
function julianday($dd,$mm,$yy)
{
$days=array(31,0,31,30,31,30,31,31,30,31,30,31);
$days[1]=$yy%4==0&&$yy%100!=0||$yy%400==0?29:28;
for ($i=1;$i<$mm;$i++)
$jd=$jd+$days[$i-1];
return($jd+$dd);
}
function age($dd,$mm,$yy)
{
$now=split("-",date("d-m-Y"));
$dd1=$now[0];
$mm1=$now[1];
$yy1=$now[2];
if($yy1==$yy)
{
$age["years"]=0;
$age["days"]=julianday($dd1,$mm1,$yy1)-julianday($dd,$mm,$yy);
return($age);
}
else
{
$ans1=$yy%4==0&&$yy%100!=0||$yy%400==0?366-julianday($dd,$mm,$yy):365-julianday($dd,$mm,$yy);
$ans2=julianday($dd1,$mm1,$yy1);
$sy=$yy+1;
$ly=$yy1-1;
while($sy++<=$ly)
$sum=$sy%4==0&&$sy%100!=0||$sy%400==0?$sum+366:$sum+365;
}
$years=(float)($sum+$ans1+$ans2)/365;
$days=($years-(int)($years))*365;
$age[years]=(int)$years;
$age[days]=(int)$days;
return ($age);
}
?>
<table width="90%"><tr><td class="g" colspan="4" style="text-align:center;">Find out how much time has elapsed since your special date</td></tr>
<tr><td class="center"><form method="post" action="http://www.atimealone.com/HowLong.php" />Enter Date </td>
<td class="center">
<input size="14" name="dob" value="format dd/mm/yyyy" onfocus="if(this.value=='format dd/mm/yyyy')this.value='';" onblur="if(this.value=='')this.value='format dd/mm/yyyy';" /></td>
<td class="center"><select name="day">
<option selected="selected" value="'re difference: ">Select one</option>
<option value="'ve been together">Anniversary</option>
<option value="'ve been alive">Birthday</option>
<option value="'ve been working">Seniority Day</option>
<option value="'ve been sober">Sobriety Day</option>
<option value="'re difference: ">Other</option></select>
</td><td><input type="submit" /></td></tr></table>
<?
if($dob)
extract($_REQUEST);
{
$dob=str_replace(" ","",$dob);
if(!ereg("^[0-9]{1,2}(-|/)[0-9]{1,2}(-|/)[0-9]{4}$",$dob))
$msg="Invalid date";
elseif(ereg("^[0-9]{1,2}/[0-9]{1,2}/[0-9]{4}",$dob))
$dob=split("/",$dob);
else
$dob=split("-",$dob);
if($msg) die($msg);
$dd=$dob[0];
$mm=$dob[1];
$yy=$dob[2];
$age=age($dd,$mm,$yy);
$day=stripslashes ($day);
echo "<div class='b' style='text-align:center;'>The date you entered is $dd/$mm/$yy<br />";
echo "The weekday was " . dow($dd,$mm,$yy) . "<br />";
echo "You$day $age[years] years and $age[days] days.<br />";
}
?>