Avatar billede andersjo Nybegynder
13. september 2005 - 13:34 Der er 8 kommentarer og
1 løsning

dato + 1 dag

Hei.

En dato hentes fra databasen og er på denne formen:
2005-09-08 00:00:00

Jeg ønsker å finne en enkel måte å finne neste dato på samme form, altså 2005-09-09 00:00:00.

Noen som vet hvordan jeg kan gjøre det?

//andersjo
Avatar billede Slettet bruger
13. september 2005 - 13:41 #1
$dag = date("d")+1;

echo date("d-m-Y", mktime(0, 0, 0, $dag, date("m"), date("Y"))); // hours, minutes, seconds, days, months, years

--
jeg tror slet ikke det er den smarteste måde - men det var da et bud.
Avatar billede andersjo Nybegynder
13. september 2005 - 13:46 #2
I følge ditt eksempel vil vel $dag være datoen i morgen..??
Jeg trenger å vite datoen etter en hvilken som helst dato, siden denne hentes fra en database og er forskjellig hver gang.
Avatar billede coderdk Praktikant
13. september 2005 - 14:42 #3
strtotime( '+1 day', strtotime( '2005-09-08 00:00:00' ) );
Avatar billede hmortensen Nybegynder
13. september 2005 - 15:14 #4
Kan også gøres direkte i mySQL:
SELECT dato, ADDDATE(dato, INTERVAL 1 DAY) AS nyDato FROM tabel
Avatar billede coderdk Praktikant
13. september 2005 - 15:24 #5
Ja, så kan jeg bedre lide hmortensens forslag :)
Avatar billede andersjo Nybegynder
13. september 2005 - 15:29 #6
Ja, det er mulig jeg kunne gjort det på denne måten, men jeg har nå fått løst det slik:

// $date er variabel med dato fra databasen

preg_match( "/^(\d{4})-(\d{2})-(\d{2})/", $date, $matches );
$timestamp = mktime( 0, 0, 0, $matches[2], $matches[3], $matches[1] );
                               
$datearray = getdate( $timestamp );
                                       
$date = $datearray["mday"];
$month = $datearray["mon"];
$year = $datearray["year"];
                                           
$next_day = mktime(0,0,0,$month,$date+1,$year);
$new_date = date("Y-m-d", $next_day). " 00:00:00";
Avatar billede coderdk Praktikant
13. september 2005 - 15:30 #7
Er det ikke lidt fjollet når du bare kan bruge hmortensens måde? Du ændrer bare i din eksisterende query, og bingo har du et extra felt med dagen + 1 :)
Avatar billede andersjo Nybegynder
13. september 2005 - 15:40 #8
Jo, det er jeg enig i. Så om hmortensen legger inn et svar, så skal han få poengene.

Problemet mitt er at min SQL-query ligger i en funksjon som brukes flere steder. Endrer jeg denne kan det få konsekvenser for andre deler av koden. Jeg kunne selvfølgelig lagent en kopi av funksjonen og endret i denne, men nå har jeg i hvert fall lært litt om bruk av dato-funksjoner.
Avatar billede hmortensen Nybegynder
13. september 2005 - 15:50 #9
Du behøver jo ikke bruge samme SQL streng alle steder, hvilket tit blivernoget jusk anyway ;)
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