phun-ky Skrevet 16. november 2005 Del Skrevet 16. november 2005 (endret) hei! driver å funderer på hvordan jeg skal hente ut år, måned, dag fra en streng som ser slik ut: 2005-11-11 12:21:12 prøver å finne noe på php.net men har ikke flaks.. Endret 16. november 2005 av phun-ky Lenke til kommentar
Gjest Slettet-df17e Skrevet 16. november 2005 Del Skrevet 16. november 2005 (endret) Veit ikke helt om det er dette du er ute etter men... $string = "2005-11-11 12:21:12"; $dato = explode(" ", $string); echo $dato[0]; Jeg har ikke testa kodebiten, men skal funke fint Endret 16. november 2005 av Slettet-df17e Lenke til kommentar
Nervetattoo Skrevet 16. november 2005 Del Skrevet 16. november 2005 Vet du at det er på den formen? regex: (\d{4}-\d{2}-\d{2}\044\d{2}:\d{2}:\d{2}) Den er helt utestet, så sjekk at \044 virkelig er koden for whitespace-elementer, og test den. Da henter du kun ut fra det formatet. Et alternativ er å bare kreve at den starter numerisk, slutter numerisk og inneholder bare ":", "-", whitespace og numeriske tegn. Edit: Jeg leste helt helt feil først Her er mer korrekt: $date = explode(' ', $date); $date1 = explode('-', $date[0]); $date2 = explode(':', $date[1]); Print_r på $date1/2 så ser du hva du ender opp med da. Navnene mine er mildt sagt elendige, bruk beskrivende navn. Lenke til kommentar
phun-ky Skrevet 16. november 2005 Forfatter Del Skrevet 16. november 2005 (endret) er kanskje ute på viddene men dete var det jeg gjorde: $string = $row[date_created]; //feks 2005-11-11 12:21:12 $dato = explode(" ", $string); $year = $dato[0].$dato[1].$dato[2].$dato[3]; $month = $dato[5].$dato[6]; $day = $dato[8].$dato[9]; dette fungerte ikke.. Endret 16. november 2005 av phun-ky Lenke til kommentar
phun-ky Skrevet 16. november 2005 Forfatter Del Skrevet 16. november 2005 $string = $row[date_created]; $date = explode(' ', $string); $date1 = explode('-', $date[0]); $date2 = explode(':', $date[1]); echo $date[0]; echo $date[1]; dette printer ut 2005-11-11 og 12:12:24 er ikke akkurat det jeg er ute etter, jeg er ute etter å separere årstallet, måneden og dagen... slik at det blir: 2005 på en variabel, 11 på en annen og 11 på den siste.. Lenke til kommentar
kakkle Skrevet 16. november 2005 Del Skrevet 16. november 2005 Du må bruke $date1, og ikke $date. prøv å skriv fløgende (som Findus skrev): print_r($date1); Så ser du indeksnøkkel, samt verdien. Bruk da $date1[indeksnøkkel] for å få ut verdien. Prøv å forstå hva som skjer i det scriptet, og hvordan det blir slik. Skjønner du hvorfor du må bruke $date1 og ikke $date ? Lenke til kommentar
phun-ky Skrevet 16. november 2005 Forfatter Del Skrevet 16. november 2005 jeg fikk ut ArrayArray med: echo $date1;echo $date2; såe? Lenke til kommentar
phun-ky Skrevet 16. november 2005 Forfatter Del Skrevet 16. november 2005 ah, så det nå print_r er ikke det samme som echo nei :/ Lenke til kommentar
LoS Skrevet 16. november 2005 Del Skrevet 16. november 2005 Forøvrig, ser at dette er MySQLs DATETIME-format. Dette kan du på forhånd formatere rett fra spørringen. Ta en kikk her: http://dev.mysql.com/doc/refman/5.0/en/dat....html#id2968086 Lenke til kommentar
???????? Skrevet 16. november 2005 Del Skrevet 16. november 2005 Dersom dette er en SQL spørring så gjør som LoS sier, formater det i spørringen. Hvis ikke så kan du enkelt løse det med regex: $dato = "2005-11-11 12:21:12"; preg_match("/(\d+)\-(\d+)\-(\d+)/", $dato, $treff); echo "År: {$treff[1]}, Måned: {$treff[2]}, Dag: {$treff[3]}"; Dersom formatet ALLTID er YYYY-MM-DD, dvs. at måneders vises som 01, 02 osv. og det samme med dager så kan du også bruke: $dato = "2005-11-11 12:21:12"; $år = $dato{0}.$dato{1}.$dato{2}.$dato{3}; $måned = $dato{5}.$dato{6}; $dag = $dato{8}.$dato{9}; Du slipper da å begynne med explode! Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå