|
| Countdown-script - hvad går der galt? Fra : Kristian Risager Lar~ |
Dato : 06-03-01 15:28 |
|
Jeg har lige forsøgt mig med følgende seks liniers kode, men det ser ikke ud
til at virke.
<?
function countdown($maaned,$dag,$aar) {
return (int)((mktime(0,0,0,$maaned,$dag,$aar))/86400);
}
echo "Der er ".countdown(31,7,2001)." til min fødselsdag.";
?>
som gerne skulle give antallet af dage til min fødselsdag, men det giver et
lidt fucked up tal, nemlig 12239.
Hvorfor?
--
/Kristian Risager Larsen
Mail: mailto:kezze@kezze.dk ICQ: 14602805
| |
Johan (06-03-2001)
| Kommentar Fra : Johan |
Dato : 06-03-01 16:29 |
|
> <?
> function countdown($maaned,$dag,$aar) {
> return (int)((mktime(0,0,0,$maaned,$dag,$aar))/86400);
> }
> echo "Der er ".countdown(31,7,2001)." til min fødselsdag.";
> ?>
>
> som gerne skulle give antallet af dage til min fødselsdag, men det giver
et
> lidt fucked up tal, nemlig 12239.
>
> Hvorfor?
Muligvis fordi du har skiftet om på måned og dag?!
prøv countdown(7,31,2001) istedet!
mvh
Johan
| |
Kristian Risager Lar~ (06-03-2001)
| Kommentar Fra : Kristian Risager Lar~ |
Dato : 06-03-01 16:37 |
|
> Muligvis fordi du har skiftet om på måned og dag?!
lol
Undskyld det dumme spørgsmål, havde ikke lige tænkt på den omvendte
rækkefølge i dansk og engelsk datoangivelse...
eod
--
/Kristian Risager Larsen
Mail: mailto:kezze@kezze.dk ICQ: 14602805
| |
John Joe (09-03-2001)
| Kommentar Fra : John Joe |
Dato : 09-03-01 11:17 |
|
Kristian Risager Larsen <kezze@kezze.dk> wrote in message
news:ot6p6.9431$XX2.214321@twister.sunsite.dk...
> Jeg har lige forsøgt mig med følgende seks liniers kode, men det ser ikke
ud
> til at virke.
>
> <?
> function countdown($maaned,$dag,$aar) {
> return (int)((mktime(0,0,0,$maaned,$dag,$aar))/86400);
> }
> echo "Der er ".countdown(31,7,2001)." til min fødselsdag.";
> ?>
>
> som gerne skulle give antallet af dage til min fødselsdag, men det giver
et
> lidt fucked up tal, nemlig 12239.
>
> Hvorfor?
>
> --
> /Kristian Risager Larsen
> Mail: mailto:kezze@kezze.dk ICQ: 14602805
>
Jeg har lavet et lidt mere indviklet og "grimt" script, der tilgengæld selv
finder ud af hvilket år det skal tælle ned til. Det er nok en god idé at
lave det som en funktion, så man bare kan fylde en dato på og få et resultat
tilbage.
---------
<?php
// Sæt ind i de to variabler
$dag = "10";
$maaned = "3";
// Udregner hvilket år datoen forekommer næste gang
if ((mktime (0,0,0,$maaned,$dag,date(Y))) <= time()) { $aar =
date(Y)+1; }
else { $aar = date(Y); }
if (checkdate ($maaned,$dag,$aar) != 1) {echo "Den valgte dato
findes ikke"; }
$birthday = mktime (0,0,0,$maaned,$dag,$aar);
$sekunder = $birthday - time();
$dage = ($sekunder/(3600*24));
$dage = (int) $dage;
// Lægger 1 dag til, da det skal korrigeres pga. opbygningen af
scriptet
$dage = $dage+1;
echo $dage;
?>
------------------
P.S. Jeg har ikke fødseldag i morgen. Datoen er bare et eksempel.
| |
John Joe (09-03-2001)
| Kommentar Fra : John Joe |
Dato : 09-03-01 11:31 |
|
John Joe <ole321@yahoo.dk> wrote in message
news:s42q6.1210$lk1.43227@twister.sunsite.dk...
> Kristian Risager Larsen <kezze@kezze.dk> wrote in message
> news:ot6p6.9431$XX2.214321@twister.sunsite.dk...
> > Jeg har lige forsøgt mig med følgende seks liniers kode, men det ser
ikke
> ud
> > til at virke.
> >
> > <?
> > function countdown($maaned,$dag,$aar) {
> > return (int)((mktime(0,0,0,$maaned,$dag,$aar))/86400);
> > }
> > echo "Der er ".countdown(31,7,2001)." til min fødselsdag.";
> > ?>
> >
> > som gerne skulle give antallet af dage til min fødselsdag, men det giver
> et
> > lidt fucked up tal, nemlig 12239.
> >
> > Hvorfor?
> >
> > --
> > /Kristian Risager Larsen
> > Mail: mailto:kezze@kezze.dk ICQ: 14602805
> >
>
> Jeg har lavet et lidt mere indviklet og "grimt" script, der tilgengæld
selv
> finder ud af hvilket år det skal tælle ned til. Det er nok en god idé at
> lave det som en funktion, så man bare kan fylde en dato på og få et
resultat
> tilbage.
> ---------
> <?php
> // Sæt ind i de to variabler
> $dag = "10";
> $maaned = "3";
> // Udregner hvilket år datoen forekommer næste gang
> if ((mktime (0,0,0,$maaned,$dag,date(Y))) <= time()) { $aar =
> date(Y)+1; }
> else { $aar = date(Y); }
>
> if (checkdate ($maaned,$dag,$aar) != 1) {echo "Den valgte dato
> findes ikke"; }
> $birthday = mktime (0,0,0,$maaned,$dag,$aar);
> $sekunder = $birthday - time();
> $dage = ($sekunder/(3600*24));
> $dage = (int) $dage;
> // Lægger 1 dag til, da det skal korrigeres pga. opbygningen af
> scriptet
> $dage = $dage+1;
> echo $dage;
> ?>
> ------------------
> P.S. Jeg har ikke fødseldag i morgen. Datoen er bare et eksempel.
Så har jeg lavet det til en funktion. Jeg har ikke siddet og tænkt
forfærdlig meget over hvorfor der skal lægges en dag til, men bare gjort det
og konstateret at det virker. Er der nogen der ved hvorfor?
Og hvis det skal være lidt mere raffineret, skal man sørge for at der står
"dag" i stedet for "dage" hvis der er en dag tilbage.
**'Uprøvet:
Der er <?php echo $dage; ?> dag<? if ($dage!=1) { echo "e"; }?> tilbage til
min fødselsdag.
*****
Og hvis det skal være endnu bedre skal der ske noget specielt på
fødselsdagen.
Der må godt nok være mange der har lavet et fødselsdags script.
Her er den nye funktion:
-----
function daysleft($dag,$maaned) {
// Udregner hvilket år datoen forekommer næste gang
if ((mktime (0,0,0,$maaned,$dag,date(Y))) <= time()) { $aar =
date(Y)+1; }
else { $aar = date(Y); }
// Checker datoens validitet
if (checkdate ($maaned,$dag,$aar) != 1) {echo "Den valgte dato
findes ikke!"; }
$birthday = mktime (0,0,0,$maaned,$dag,$aar);
$sekunder = $birthday - time();
$dage = ($sekunder/(3600*24));
$dage = (int) $dage;
// Lægger 1 dag til, da det skal korrigeres pga. opbygningen af
scriptet
$dage = $dage+1;
return $dage;
}
-------
| |
|
|