#18736 [Bgs]: mktime gives an unexpected value
| From: | hholzgra@php.net | 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: <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