Avatar billede espeholt_jr Nybegynder
30. januar 2005 - 19:18 Der er 13 kommentarer og
1 løsning

Ændre dato med én dag

Hej...

jeg skal bruge 2 funktioner... 50 points for hver ;)

Den ene skal kunne omsætte fx 27/1-2003 til 28/1-2003 osv. den skal også kunne tage måneder og år selvfølgelig

Den anden skal kunne omsætte fx 2003-01-27 til 2003-01-28... igen skal den kunne tage måneder og år, altså så den ikke siger fx dag 32 :D

det gør ikke noget hvis en af funktionerne, bruger den anden :) hvis man laver begge får man alle 100 ;)
Avatar billede net-city Nybegynder
30. januar 2005 - 19:22 #1
<?php
$dato = date("d");
$plus = $dato+1;
$maanedere = date("m");
$aar = date("y");
print(" ".$dato."/ ".$maanedere." - ".$aar." ");

?>
Avatar billede net-city Nybegynder
30. januar 2005 - 19:25 #2
ret
print(" ".$dato."/ ".$maanedere." - ".$aar." ");
med
print(" ".$plus."/".$maanedere." - ".$aar." ");
Avatar billede net-city Nybegynder
30. januar 2005 - 19:26 #3
for at få feks. 2005 istedet for 05 så kan du lave

$aar = date("Y");
istedet for
$aar = date("y");
Avatar billede detox Nybegynder
30. januar 2005 - 19:28 #4
Den anden er den letteste:

$dato = '2003-01-27';
$plus = strtotime('+1 day', strtotime($dato));
echo date('Y-m-d', $plus); // 2003-01-28
Avatar billede detox Nybegynder
30. januar 2005 - 19:29 #5
net-city -> Det vil jo så ikke virke med fx: 31/1-2003, som det bliver efterlyst.
Avatar billede detox Nybegynder
30. januar 2005 - 19:36 #6
Her er et bud på den første:

$dato = '31/1-2003';
$arr = split('-', $dato);
list ($dag, $maaned) = split('/', $arr[0]);
echo date('j/n-Y', mktime(0,0,0,$maaned,$dag+1,$arr[1])); // 1/2-2003
Avatar billede espeholt_jr Nybegynder
30. januar 2005 - 19:44 #7
net-city-> dine virker ikke, da det ikke er datoen man er på, men en dato man kan sætte ind...

detox-> ser lovende ud... har du testet det du har skrevet? bare for at vide ;)
Avatar billede detox Nybegynder
30. januar 2005 - 19:46 #8
Jep de er testet. Her de som funktioner, hvis det var det du ønskede:

$dato = '2003-01-31';
echo Plus($dato);

function Plus($dato, $antal=1) {
    return date('Y-m-d', strtotime("+$antal day", strtotime($dato)));
}


$dato = '31/1-2003';
echo PlusDato($dato);

function PlusDato($dato, $antal=1) {
    $arr = split('-', $dato);
    list ($dag, $maaned) = split('/', $arr[0]);
    return date('j/n-Y', mktime(0,0,0,$maaned,$dag+$antal,$arr[1]));
}
Avatar billede espeholt_jr Nybegynder
30. januar 2005 - 19:50 #9
function adddaytousadate($date) {

  $plus = strtotime('+1 day', strtotime($date));
  return date('Y-m-d', $plus);

}

function adddaytonormaldate($date) {

  $arr = split('-', $date);
  list ($day, $month) = split('/', $arr[0]);
  return date('j/n-Y', mktime(0,0,0,$month,$day+1,$arr[1]));

}

vel det samme? lavede lige til engelsk kan jeg bedre lide hehe :D

tester lige, så opret et svar imellem tiden ;)
Avatar billede detox Nybegynder
30. januar 2005 - 19:53 #10
Jo, det er rigtigt. Grunden til jeg lavede det sådan var pga fleksibiliteten, hvor man kan lægge flere dage til fx:

echo Plus($dato,800); eller: echo PlusDato($dato,800);
Avatar billede detox Nybegynder
30. januar 2005 - 19:55 #11
$plus = strtotime('+1 day', strtotime($date));
  return date('Y-m-d', $plus);

kan i øvrigt trækkes sammen til:

  return date('Y-m-d', strtotime('+1 day', strtotime($date)));
Avatar billede espeholt_jr Nybegynder
30. januar 2005 - 19:58 #12
damn... kan jeg få dig til at lave en lille ændring? ( kun hvis du gider )

gøre så der også kommer 0´er med i den sidste... det skulle der med :/ ved godt jeg har skrevet det modsatte...
Avatar billede detox Nybegynder
30. januar 2005 - 19:59 #13
return date('j/n-Y', mktime(0,0,0,$month,$day+1,$arr[1]));

rettes til:

return date('d/m-Y', mktime(0,0,0,$month,$day+1,$arr[1]));
Avatar billede espeholt_jr Nybegynder
30. januar 2005 - 20:22 #14
tak skal du have :)

hmm hvordan virker det karma ting der?
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