Gå til innhold

hente ut tegn fra en streng..[LØST]


Anbefalte innlegg

Skrevet (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 av phun-ky
Videoannonse
Annonse
Gjest Slettet-df17e
Skrevet (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 av Slettet-df17e
Skrevet

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.

Skrevet (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 av phun-ky
Skrevet

$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..

Skrevet

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 ?

Skrevet

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!

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...