Gå til innhold

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


Anbefalte innlegg

Videoannonse
Annonse
Gjest Slettet-df17e

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
Lenke til kommentar

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

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
Lenke til kommentar

$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

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

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

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å
×
×
  • Opprett ny...