|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2002-08-04 16:17 UTC] sander@php.net
[2002-08-05 05:35 UTC] fabian dot eidner at firemail dot de
[2002-08-05 07:20 UTC] hholzgra@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Mon Dec 15 23:00:01 2025 UTC |
Hello everybody, I have programmed a routine, which calculates the difference "erg" between the two dates "bis" minus "von". This works out well for many values, but for the combination $von = mktime(0,0,0,1,1,2002); $bis = mktime(0,0,0,5,13,2002); a wrong value is going to be calculated (erge and erge2 produce floating values instead of integer values). Please have a look at the following source code (especially the following two lines): $von = mktime(0,0,0,$t1,$t2,$t3); $bis = mktime(0,0,0,$t4,$t5,$t6); ----- <html> <head> <title>-----[ Ger?te Bestellung ]-----</title> <style type="text/css"> <!-- a:link { text-decoration:none; font-weight:bold; color:#AFAFAF; } a:visited { text-decoration:none; font-weight:bold; color:#AFAFAF; } a:hover { text-decoration:none; font-weight:bold; color:#FFBF00; } a:active { text-decoration:none; font-weight:bold; color:#FFFF00; } --> </style> </head> <body text="#000000" bgcolor="#EFEFEF" link="#FF0000" alink="#FFFF00" vlink="#FF0000"> <? echo "<font color='#0060FF' size='+1'>Ger?te Reservierung</font>"; echo "<hr noshade size='1' color='#0060FF'><br><br>"; echo "<form action='order.php?action=send3&$t1&$t2&$t3&$t4&$t5&$t6&$id&$coast' method='post'><table bordercolor='1' width='750' height='550'><tr><td colspan='4'><font color='#0060FF'><b>Bestell-Formular</b></font></td></tr><tr><td colspan='4'><font color='#0000FF'><b>Hinweis:</b></font><br>Bitte tragen sie in das unten stehende Formular:<br><font color='#FF0000'>Name u. vor Name:</font><br>und<br><font color='#FF0000'>Kostenstelle ein.</font><br>Ebenso sollten sie nicht vergessen das gew?nschte Ger?t auszusuchen.<br>Bei von bis geben sie den Zeitraum der Bestellung ein.</td></tr><tr><td>Name: <input type='Text' name='id' value='' size='20' maxlength='30'> </td><td>Kostenstelle: <input type='Text' name='coast' value='' size='9' maxlength='9'> <font color='#FF0000'>ohne (0)</font></td><td colspan='2'>Ger?t: <select name='Teile' size='1'><option value='Beamer'>Beamer<option value='Laptop'>Laptop</select></td></tr><tr><td colspan='4'><textarea name='bem' cols='90' rows='3'></textarea></td></tr><tr><td colspan='4'><font color='#0000FF'><b>Hinweis:</b></font><br>Bitte geben sie ein vollst?ndiges Datum an, z.B. 04<font color='#0000BF'>(Monat)</font>.05<font color='#0000BF'>(Tag)</font>.2002<font color='#0000BF'>(Jahr)</font></td></tr><tr><td colspan='2'>Von:<br>Monat: <select name='t1' size='1'><option value='1'>1<option value='2'>2<option value='3'>3<option value='4'>4<option value='5'>5<option value='6'>6<option value='7'>7<option value='8'>8<option value='9'>9<option value='10'>10<option value='11'>11<option value='12'>12</select> Tag: <select size='1' name='t2'><option value='1'>1<option value='2'>2<option value='3'>3<option value='4'>4<option value='5'>5<option value='6'>6<option value='7'>7<option value='8'>8<option value='9'>9<option value='10'>10<option value='11'>11<option value='12'>12<option value='13'>13<option value='14'>14<option value='15'>15<option value='16'>16<option value='17'>17<option value='18'>18<option value='19'>19<option value='20'>20<option value='21'>21<option value='22'>22<option value='23'>23<option value='24'>24<option value='25'>25<option value='26'>26<option value='27'>27<option value='28'>28<option value='29'>29<option value='30'>30<option value='31'>31</select> Jahr: <select size='1' name='t3'>"; include ("TXT/von_m.txt");echo "</select><br>Bis:<br>Monat: <select size='1' name='t4'><option value='1'>1<option value='2'>2<option value='3'>3<option value='4'>4<option value='5'>5<option value='6'>6<option value='7'>7<option value='8'>8<option value='9'>9<option value='10'>10<option value='11'>11<option value='12'>12</select> Tag: <select size='1' name='t5'><option value='1'>1<option value='2'>2<option value='3'>3<option value='4'>4<option value='5'>5<option value='6'>6<option value='7'>7<option value='8'>8<option value='9'>9<option value='10'>10<option value='11'>11<option value='12'>12<option value='13'>13<option value='14'>14<option value='15'>15<option value='16'>16<option value='17'>17<option value='18'>18<option value='19'>19<option value='20'>20<option value='21'>21<option value='22'>22<option value='23'>23<option value='24'>24<option value='25'>25<option value='26'>26<option value='27'>27<option value='28'>28<option value='29'>29<option value='30'>30<option value='31'>31</select> Jahr: <select size='1' name='t6'>"; include ("TXT/bis_m.txt");echo "</select></td><td></td></tr><tr><td colspan='4'><input type='Submit' name='Sub' value='Senden'> <input type='reset'></input></td></tr></table></form>"; if($action == "send3") { if($t1 && $t2 && $t3 && $t4 && $t5 && $t6 < 1 || $t1 > 12 || $t4 > 12|| $t2 > 31 || $t5 > 31 || $t3 < 1970 || $t6 < 1970 || $t3 > $t6 || $t1==$t4 && $t2==$t5 && $t3==$t6) { echo "Sie haben kein Datum oder ein falsches Datum eingegeben."; } else { echo "Von:<br>"; echo mktime(0,0,0,$t1,$t2,$t3)." | "; echo date("D F Y", mktime(0,0,0,$t1,$t2,$t3)); echo "<br>Bis:<br>"; echo mktime(0,0,0,$t4,$t5,$t6)." | "; echo date("D F Y", mktime(0,0,0,$t4,$t5,$t6)); $von = mktime(0,0,0,$t1,$t2,$t3); $bis = mktime(0,0,0,$t4,$t5,$t6); $erg = $bis-$von; if ($erg <=0) { echo "<br><center><font color='#FF0000'>Sie haben eine ung?ltige Eingabe gemacht!!!</font></center>"; } else if($Teile == "Beamer") { $erge = $erg/86400; $erge2 = (($erge-1)*(30))+50; echo "<br>Datum erstellt..."; echo "<br>Name: <font color='#0000DF'><b>".$id."</b></font>"; echo "<br>Kostenstelle: <font color='#0000DF'><b>".$coast."</b></font>"; echo "<br>Das selektierte Ger?t ist ein: <font color='#0000BF'><b>Beamer</b></font>"; echo "<br>Die Kosten belaufen sich auf: <font color='#FF0000'><b>".$erge2."</b>Euro</font>"; echo "<br>Sie haben folgende Bemerkung gemacht: <font color='#FF0000'><b>".$bem."</b></font>"; echo "<center><form action='order2.php' method='post'><table border='1' bgcolor='#0070C0' width='670'><tr><td colspan='2'><font color='#FFFFFF'><b>Bitte ?berpr?fen Sie die Eingaben und vergewissern Sie sich das alles korrekt ausgef?llt ist!!!</font></td></tr><tr><td><input type='Submit' name='Sub2' value='Senden'></input></td><td><a href='order.php'><b>Daten neu eingeben</b></a></td></tr></table></form></center>"; } else if($Teile == "Laptop") { $erge = $erg/86400; $erge2 = (($erge-1)*(50))+70; echo "<br>Datum erstellt..."; echo "<br>Name: <font color='#0000DF'><b>".$id."</b></font>"; echo "<br>Kostenstelle: <font color='#0000DF'><b>".$coast."</b></font>"; echo "<br>Das selektierte Ger?t ist ein: <font color='#0000BF'><b>Laptop</b></font>"; echo "<br>Die Kosten belaufen sich auf: <font color='#FF0000'><b>".$erge2."</b>Euro</font>"; echo "<br>Sie haben folgende Bemerkung gemacht: <font color='#FF0000'><b>".$bem."</b></font>"; echo "<center><form action='order2.php' method='post'><table border='1' bgcolor='#0070C0' width='670'><tr><td colspan='2'><font color='#FFFFFF'><b>Bitte ?berpr?fen Sie die Eingaben und vergewissern Sie sich das alles korrekt ausgef?llt ist!!!</font></td></tr><tr><td><input type='Submit' name='Sub2' value='Senden'></input></td><td><a href='order.php'><b>Daten neu eingeben</b></a></td></tr></table></form></center>"; } } } ?> </body> </html> Best regards, Fabian Eidner