/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Min kalender virker ! juhu!!! MEN.....
Fra : Ronni / The real one~


Dato : 26-11-01 23:34

Jeg synes koden er ret rodet!

Det hænger sammen med at når jeg skal finde $dow (day of week) så skal jeg
ikke have lagt én til måneden($month), og når jeg så skal finde $dim (days
in month) så skal jeg have lagt én til måneden ($month), og jeg er derfor
nødt til at lave to gange mktime(tis,tis,tis,etc,etc,etc)

Er det ikke muligt at lave det med kun EN mktime() ?

NB! SOVS følger i bunden!

/Ronni
ronni1@ofir.dk






SOVSEN :

<?php


$year; /* Given year */

$uts = mktime(0,0,0,$month,0,$year); /* Unix Time Stamp for use in $dow */
$dow = strftime("%u", $uts); /* Day Of Week [1-7] */

$month++; /* Given month */

$uts = mktime(0,0,0,$month,0,$year); /* Unix Time Stamp for use in $dim */
$dim = strftime("%e", $uts); /* Days In Month [28-31] */
$monthName = strftime("%B", $uts); /* Name of Current month */

echo "month number : " . $month . "<br>";
echo "dim (day in month) : " . $dim . "<br>";
echo "dow (day of week) : " . $dow . "<br>";
echo "<hr><br>";
?>

<html>
<head>
<title> Calendar </title>
</head>
<body>

<center>
<?php echo $monthName; ?>
</center>

<br><br>

<table border="1" cellpadding="4" cellspacing="0" align="center">

<tr>
<td>Monday</td>
<td>Thuesday</td>
<td>Wednesday</td>
<td>Thursday</td>
<td>Friday</td>
<td>Saturday</td>
<td>Sunday</td>
</tr>

<?php

echo "<tr>\n";

for($i = 0; $i < $dow; $i++)
{
echo "<td>&nbsp;</td>\n";
}

for($j = 1; $j < $dim + 1 ; $j++)
{
if($dow++ == 0)
{
echo "<tr>\n";
}

echo "<td>$j</td>\n";

if($dow == 7)
{
echo "</tr>\n";
}

$dow %= 7;
}

for($k = $dow; $k < 7; $k++)
{
echo "<td>&nbsp;</td>\n";
}

echo "</tr>\n";
?>

</table>

<br><br>
<center>
<form action="<?php echo $PHP_SELF; ?>" method="send">
<select name="month">
<option value="1">Januar</option>
<option value="2">Februar</option>
<option value="3">Marts</option>
<option value="4">April</option>
<option value="5">Maj</option>
<option value="6">Juni</option>
<option value="7">Juli</option>
<option value="8">August</option>
<option value="9">September</option>
<option value="10">Oktober</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
<br><br>
<select name="year">
<option value="2000">2000</option>
<option value="2001">2001</option>
<option value="2002">2002</option>
</select>
<br><br>
<input type="submit" value="submit">
</form>
</center>

</body>
</html>



 
 
Thor Dreier (27-11-2001)
Kommentar
Fra : Thor Dreier


Dato : 27-11-01 01:15

"Ronni / The real one " <ronni1@ofir.dk> wrote in message
news:9tufsj$gpo$1@sunsite.dk...
> Er det ikke muligt at lave det med kun EN mktime() ?

$uts = mktime(0,0,0,$month+1,0,$year);
$dim = strftime("%e", $uts);
$monthName = strftime("%B", $uts);
$dow = strftime("%u", $uts-(86400*$dim));

Det bliver det dog ikke meget mere overskueligt af.




Thor Dreier (27-11-2001)
Kommentar
Fra : Thor Dreier


Dato : 27-11-01 02:02

"Thor Dreier" <news@cheater.dk> wrote in message
news:6VAM7.8021$TN1.923245@news000.worldonline.dk...
> "Ronni / The real one " <ronni1@ofir.dk> wrote in message
> news:9tufsj$gpo$1@sunsite.dk...
> > Er det ikke muligt at lave det med kun EN mktime() ?
>
> $uts = mktime(0,0,0,$month+1,0,$year);
> $dim = strftime("%e", $uts);
> $monthName = strftime("%B", $uts);
> $dow = strftime("%u", $uts-(86400*$dim));

Skulle have stået
$dow = strftime("%u", $uts-(86400*($dim-1)));

Den dag i ugen du selv finder er lidt forkert. (det siger at det er dow er 3
her i nov 2001 selvom den første dag i måneden er torsdag (den 4 dag i
ugen)).
Prøv også at se maj 2000, hvor den fucker lidt i det.




Ronni / The real one~ (27-11-2001)
Kommentar
Fra : Ronni / The real one~


Dato : 27-11-01 15:13

ja! maj 2000 ser ikke for godt ud!
Men november 2001 passer da fint med dow = 3
den giver da i hvert fald torsdag d. 1. og fredag d, 30.
som stemmer overens med min Windows Kalender (uret i højre hjørne :)

Men hvor ligger fejlen i dette ? Jeg har efterhånden rodet mere end rigeligt
med det :) og kan simpelhen ikke få det til at køre korrekt så. Når det
endelig
funker, så fucker noget andet.....

/Ronni
ronni1@ofir.dk


"Thor Dreier" <news@cheater.dk> wrote in message
news:LABM7.8030$TN1.929379@news000.worldonline.dk...
> "Thor Dreier" <news@cheater.dk> wrote in message
> news:6VAM7.8021$TN1.923245@news000.worldonline.dk...
> > "Ronni / The real one " <ronni1@ofir.dk> wrote in message
> > news:9tufsj$gpo$1@sunsite.dk...
> > > Er det ikke muligt at lave det med kun EN mktime() ?
> >
> > $uts = mktime(0,0,0,$month+1,0,$year);
> > $dim = strftime("%e", $uts);
> > $monthName = strftime("%B", $uts);
> > $dow = strftime("%u", $uts-(86400*$dim));
>
> Skulle have stået
> $dow = strftime("%u", $uts-(86400*($dim-1)));
>
> Den dag i ugen du selv finder er lidt forkert. (det siger at det er dow er
3
> her i nov 2001 selvom den første dag i måneden er torsdag (den 4 dag i
> ugen)).
> Prøv også at se maj 2000, hvor den fucker lidt i det.
>
>
>



Uffe (28-11-2001)
Kommentar
Fra : Uffe


Dato : 28-11-01 14:09

Ronni / The real one :-\) wrote in dk.edb.internet.webdesign.serverside.php:
> ja! maj 2000 ser ikke for godt ud!
..
> Men hvor ligger fejlen i dette ? Jeg har efterhånden rodet mere end rigeligt
> med det :) og kan simpelhen ikke få det til at køre korrekt så. Når det
> endelig
> funker, så fucker noget andet.....
en "quick and dirty" løsning - ikke kønt, men det virker:

if ($dow<7) for($i = 0; $i < $dow; $i++)
{
echo "<td>&nbsp;</td>\n";
}

mvh
Uffe

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Ronni / The real one~ (28-11-2001)
Kommentar
Fra : Ronni / The real one~


Dato : 28-11-01 14:46

Takker Uffe !!!

Det var lige det der skulle til! :)

Nu ser den ud til at fungere 100% uden insekter og skadedyr :)
Men sig endelig til hvis I kan finde nogle !

/Ronni
ronni1@ofir.dk

"Uffe" <uffe@doing.dk> wrote in message news:9u2nlv$72k$1@sunsite.dk...
> Ronni / The real one :-\) wrote in
dk.edb.internet.webdesign.serverside.php:
> > ja! maj 2000 ser ikke for godt ud!
> .
> > Men hvor ligger fejlen i dette ? Jeg har efterhånden rodet mere end
rigeligt
> > med det :) og kan simpelhen ikke få det til at køre korrekt så. Når det
> > endelig
> > funker, så fucker noget andet.....
> en "quick and dirty" løsning - ikke kønt, men det virker:
>
> if ($dow<7) for($i = 0; $i < $dow; $i++)
> {
> echo "<td>&nbsp;</td>\n";
> }
>
> mvh
> Uffe
>
> --
> Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
> - Pædagogiske tutorials på dansk
> - Kom godt i gang med koderne
> KLIK HER! => http://www.html.dk/tutorials



Uffe Lund (30-11-2001)
Kommentar
Fra : Uffe Lund


Dato : 30-11-01 11:55

Ronni / The real one :-\) wrote in dk.edb.internet.webdesign.serverside.php:
> Takker Uffe !!!
>
> Det var lige det der skulle til! :)
>
> Nu ser den ud til at fungere 100% uden insekter og skadedyr :)
> Men sig endelig til hvis I kan finde nogle !
>
Selv tak

Der er lige en lille detalje mere, i familie med den forrige. I måneder som
slutter på en søndag - f.eks. september 2001 får du en linie for meget. Derfor
denne lille tilføjelse i familie med den forrige:

if ($dow>0) for($k = $dow; $k < 7; $k++)
{
echo "<td>&nbsp;</td>\n";
}

mvh
Uffe (uffe@doing.dk - www.doing.dk)

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177522
Tips : 31968
Nyheder : 719565
Indlæg : 6408670
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste