#18736 [Com]: mktime gives an unexpected value

From: Date: Mon, 05 Aug 2002 09:35:41 +0000
Subject: #18736 [Com]: mktime gives an unexpected value
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-16003@lists.php.net to get a copy of this message
ID: 18736 Comment by: fabian.eidner@firemail.de Reported By: fabian.eidner@firemail.de Status: Bogus Bug Type: Date/time related Operating System: Win2000 PHP Version: 4CVS-2002-08-04 New Comment: 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? Previous Comments: ------------------------------------------------------------------------ [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 (#16003) next »