/ 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
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;
}
-------



Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408946
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste