#18736 [Com]: mktime gives an unexpected value
| From: | fabian dot eidner at firemail dot de | 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: <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
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=18736&edit=1