#18736 [Bgs]: mktime gives an unexpected value

From: Date: Mon, 05 Aug 2002 11:20:29 +0000
Subject: #18736 [Bgs]: mktime gives an unexpected value
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-16006@lists.php.net to get a copy of this message
ID: 18736 Updated by: hholzgra@php.net Reported By: fabian.eidner@firemail.de Status: Bogus Bug Type: Date/time related Operating System: Win2000 PHP Version: 4CVS-2002-08-04 New Comment: the result is absolutely correct as the difference between january 1st and may 13th is 134 days and 23 hours If you still don't see the fault in your assumption than please ask on the appropriate mailinglist. Previous Comments: ------------------------------------------------------------------------ [2002-08-05 05:35:41] fabian.eidner@firemail.de Hello everybody, the problem is if I calculate $bis-$von the result is: $erg 11401200 until here is all ok then i calculate $erge = $erg/86400(one day) the result of this is incorrect = 131.95833333333 Waht should i doo now? ------------------------------------------------------------------------ [2002-08-04 16:17:13] sander@php.net <?php var_dump(mktime(0, 0, 0, 1, 1, 2002)); var_dump(mktime(0, 0, 0, 5, 13, 2002)); ?> gives me int(1009839600) int(1021240800) You're probably doing something wrong. Ask support questions on the appropriate mailinglist. ------------------------------------------------------------------------ [2002-08-04 16:10:04] fabian.eidner@firemail.de 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:&nbsp;&nbsp;<input type='Text' name='id' value='' size='20' maxlength='30'>&nbsp;</td><td>Kostenstelle:&nbsp;&nbsp;&nbsp;<input type='Text' name='coast' value='' size='9' maxlength='9'>&nbsp;&nbsp;&nbsp;<font color='#FF0000'>ohne (0)</font></td><td colspan='2'>Gerät:&nbsp;&nbsp;&nbsp;<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:&nbsp;<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>&nbsp;Tag:&nbsp;<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>&nbsp;Jahr:&nbsp;<select size='1' name='t3'>"; include ("TXT/von_m.txt");echo "</select><br>Bis:<br>Monat:&nbsp;<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>&nbsp;Tag:&nbsp;<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>&nbsp;Jahr:&nbsp;<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'>&nbsp;&nbsp;<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:&nbsp;<font color='#0000DF'><b>".$id."</b></font>"; echo "<br>Kostenstelle:&nbsp;<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:&nbsp;<font color='#0000DF'><b>".$id."</b></font>"; echo "<br>Kostenstelle:&nbsp;<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 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=18736&edit=1

« previous php.bugs (#16006) next »