Avatar billede angelenglen Nybegynder
25. august 2003 - 05:44 Der er 14 kommentarer og
1 løsning

dato-halløj

okay, jeg har lige et par hurtige spørgsmål til at lege med datoer....

først og fremmest har jeg brug for en måde, hvorpå jeg kan finde ud af hvor mange dage der er i en bestemt måned..
-eksempler:
antaldate('august'); -> skal retunere 31
antaldate('september'); -> skal retunere 31
etc etc...

-derudover har jeg brug for en måde at finde ud af om et år er skudår... (så jeg kan lægge 1 til antal dage i febuar)
fx:
yearfix('2003'); -> skal retunere "no"
yearfix('2004'); -> skal retunere "yes"
yearfix('2005'); -> skal retunere "no"
etc etc...

-medmindre der er muligt at lave en funktion der gør:
antaldate('august', '2003'); -> skal retunere 31
antaldate('febuar', '2004'); -> skal retunere 29
Avatar billede madsbrodersen Nybegynder
25. august 2003 - 06:32 #1
Du kunne jo bruge php-funktionen checkdate()

hvis du indsætter i checkdate('08','31','2004') vil den returnere TRUE da det er en valid dato.

så kan du jo loope dig igennem månederne for at finde hvilke dage der er ok i en given måned.
Avatar billede schaefner Juniormester
25. august 2003 - 06:35 #2
Prøv:

function getDate($month,$year) {
  $daysinmonth = date('t',mktime(0,0,0,$month,1,$year));
  if ($month == 2) {
    $daysinmonth++;
  }
}

getDate(8,2004);
Avatar billede schaefner Juniormester
25. august 2003 - 06:37 #3
function getDate($month,$year) {
  $time = mktime(0,0,0,$month,1,$year);
  $daysinmonth = date('t',$time);
  if (date('L',$time) == 1 && $month == 2) {
    $daysinmonth++;
  }
}
Avatar billede schaefner Juniormester
25. august 2003 - 06:37 #4
function getDays($month,$year) {
  $time = mktime(0,0,0,$month,1,$year);
  $daysinmonth = date('t',$time);
  if (date('L',$time) == 1 && $month == 2) {
    return $daysinmonth++;
  }
}

echo getDays(8,2004);
Avatar billede schaefner Juniormester
25. august 2003 - 06:41 #5
En sidste rettelse, det er jo tidligt om morgenen ;o)

<?php
function getDays($month,$year) {
  $time = mktime(0,0,0,$month,1,$year);
  $daysinmonth = date('t',$time);
  if (date('L',$time) == 1 && $month == 2) {
    return $daysinmonth++;
  } else {
    return $daysinmonth;
  }
}

echo getDays(2,2004);
?>

mvh. Jesper Sørensen
Avatar billede madsbrodersen Nybegynder
25. august 2003 - 06:45 #6
Hmmm - jeg havde lige glemt at date havde funktionen indbygget.. :o)
Avatar billede detox Nybegynder
25. august 2003 - 06:51 #7
schaefner -> Det er rigtig nok tidligt. Du behøver da ikke tjekke for skudår, det sørger php da selv for:

<?php
function getDays($month,$year) {
  $time = mktime(0,0,0,$month,1,$year);
  $daysinmonth = date('t',$time);
    return $daysinmonth;
}
echo getDays(2,2004);
?>
Avatar billede angelenglen Nybegynder
25. august 2003 - 06:52 #8
hovsa, havde ikke set der var kommer forslag... desværre skal jeg til at i skole nu, så jeg kan ikke teste det før iaften :(
Avatar billede schaefner Juniormester
25. august 2003 - 08:16 #9
detox, tror der skal lidt kaffe eller cola til for at jeg kan kode optimalt ;)
Avatar billede schaefner Juniormester
25. august 2003 - 08:46 #10
Kogt lidt ned:

<?php
function getDays($month,$year) {
  return date('t',mktime(0,0,0,$month,1,$year));
}

echo getDays(2,2004);
?>
Avatar billede detox Nybegynder
25. august 2003 - 09:16 #11
He he, ja. Kogt en anelse mere:

<?php
function getDays($month,$year) {
    return date('t',mktime(0,0,0,$month,1,$year));
}
echo getDays(2,04);
?>
Avatar billede jakoba Nybegynder
25. august 2003 - 12:00 #12
detox >> man kan koge sin mad så meget at alle vitaminerne koger væk. 2-cifret årstal er farligt og begrænser pålideligheden af dit resultat. er det 1904 eller 2104 eller blot næste år.
Avatar billede detox Nybegynder
25. august 2003 - 15:52 #13
jakoba -> Det har du ret i, men i dette tilfælde spiller det vidst ingen rolle, da både 1904, 2004 og 2104 er skudår. Men det skal siges at funktionen ikke understøtter datoer efter 2038.
Avatar billede angelenglen Nybegynder
25. august 2003 - 18:16 #14
2038 bliver vist det næste "år 2000"-problem...
(selvom næste er lidt meget sagt da 2000 ikke rigtigt blev så stort et problem)
Avatar billede schaefner Juniormester
30. august 2003 - 17:49 #15
egentligt et svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester