Avatar billede myst1098 Nybegynder
27. juni 2006 - 13:44 Der er 14 kommentarer og
1 løsning

Pluk klokkeslet fra langt datoformat

I et RSS feed får jeg f.eks. denne lange streng:

Fri, 23 Jun 2006 15:05:00 +0100

ved at skrive:

echo  $item['pubdate']

Men jeg skal kun bruge tiden (tt:mm). Hvordan plukker jeg det ud af strengen ?
Avatar billede nielle Nybegynder
27. juni 2006 - 13:51 #1
$langDato = "Fri, 23 Jun 2006 15:05:00 +0100";

$pattern = "/^.*(\d{2}:\d{2}):\d{2}.*$/i";
$kortTid = preg_replace($pattern, "$1", $langDato);
Avatar billede myst1098 Nybegynder
27. juni 2006 - 13:54 #2
Nemmerlig :o)

Smid et svar...
Avatar billede nielle Nybegynder
27. juni 2006 - 14:09 #3
Svar :^)
Avatar billede myst1098 Nybegynder
27. juni 2006 - 14:14 #4
argh...

Opdagede lige at det også kan se sådan her ud:

2006-06-27T07:42:00+02:00

Så virker den første funktion ikke længere ??
Avatar billede myst1098 Nybegynder
27. juni 2006 - 14:22 #5
he he..

og det kan også se sådan her ud:

Tue, 27 Jun 2006 12:17:00 GMT

ikke nemt... :o))
Avatar billede nielle Nybegynder
27. juni 2006 - 14:26 #6
Faktisk burde den fungere i alle tre tilfælde.

Måske er der en anden fejl?
Avatar billede myst1098 Nybegynder
27. juni 2006 - 14:31 #7
2006-02-23T21:42:14+00:00 vises ikke
Tue, 27 Jun 2006 12:17:00 GMT vises korrekt

Begge er fra TV2
Avatar billede myst1098 Nybegynder
27. juni 2006 - 14:33 #8
2006-06-27T14:25:56+0200 vises ikke

Er fra ekstrabladet...
Avatar billede myst1098 Nybegynder
27. juni 2006 - 14:49 #9
Problemet opstår nok når der er et T i strengen. Der kan jeg selvfølgelig bare splitte op ved T'et og så kigge 5 karakterer frem for at få tiden. Jeg skal så "bare" kigge på strengen og se om der er et T deri.

Så mon ikke det skal se sådan her ud ?

Kig på $item['pubdate']

Hvis den indeholder et T så mit lille splitforslag

Hvis den ikke indeholder et T så din første løsning ?
Avatar billede nielle Nybegynder
27. juni 2006 - 15:06 #10
Løsningen leder efter et tidspunkt på formatet HH:MM:SS og den er ligeglad med hvad der står foran eller bagefter denne. Det er vover at påstå at løsningen burde kunne klare alle tre eksempler.

Umiddelbart kan jeg ikke set at det skulle betyde noget om der står et T foan eller ej.

Jeg skal nok undersøge sagen nærmere, men jeg mener altså at det må være noget andet som går galt.
Avatar billede nielle Nybegynder
27. juni 2006 - 15:28 #11
Testet efter ... løsningen virker korrekt (her hos mig) for alle tre datoformater.

Det må være være noget andet som går galt.
Avatar billede myst1098 Nybegynder
27. juni 2006 - 16:41 #12
Ja, du har nok ret. Jeg testede lige lidt selv og det er ikke alle feeds der ved hvad pubdate er.
Avatar billede coderdk Praktikant
27. juni 2006 - 17:53 #13
Hvad med bare:

echo date( "H:i", strtotime( "Fri, 23 Jun 2006 15:05:00 +0100" ) );
Avatar billede coderdk Praktikant
27. juni 2006 - 17:54 #14
(Virker også med T-format-strengen)
Avatar billede myst1098 Nybegynder
27. juni 2006 - 18:33 #15
Jeg har løst det. Man henter en date_timestamp streng ud fra rss filen og den formaterer man så bare f.eks.

echo date('H:i' ,$item['date_timestamp'])
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