/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Formater dato
Fra : Nicolaj Bertelsen


Dato : 12-02-02 22:11

Hej gruppe

Jeg har et felt i en form hvor brugere skal indtaste en dato, der så skal
gemmes i en mySQL database.

Så hvordan omformaterer jeg denne strengen "18.03.79" til "1979-18-03".
Så det passer til et "date" felt i mySQL.

Mit store problem er jo at brugeren, godt kan finde på at indtaste datoen på
forskellige måder.
"18.03.79" eller "18-03-79" eller "18-03-1979", skal alle formateres til
"1979-18-03".

På forhånd tak
Nicolaj Bertelsen




 
 
Tonni Aagesen (12-02-2002)
Kommentar
Fra : Tonni Aagesen


Dato : 12-02-02 22:18


"Nicolaj Bertelsen" <Nicolaj-b@stofanet.dk> skrev i en meddelelse
news:3c6984aa$0$218$ba624c82@nntp03.dk.telia.net...
> Hej gruppe
>
> Jeg har et felt i en form hvor brugere skal indtaste en dato, der så skal
> gemmes i en mySQL database.
>
> Så hvordan omformaterer jeg denne strengen "18.03.79" til "1979-18-03".
> Så det passer til et "date" felt i mySQL.
>
> Mit store problem er jo at brugeren, godt kan finde på at indtaste datoen

> forskellige måder.
> "18.03.79" eller "18-03-79" eller "18-03-1979", skal alle formateres til
> "1979-18-03".

Overvej at lave et felt til dag, måned og år hver for sig.


--
Mvh
Tonni Aagesen
agent29@mail1.stofanet.dk



Thomas Lindgaard (12-02-2002)
Kommentar
Fra : Thomas Lindgaard


Dato : 12-02-02 22:20

Davs

> Mit store problem er jo at brugeren, godt kan finde på at indtaste datoen

> forskellige måder.
> "18.03.79" eller "18-03-79" eller "18-03-1979", skal alle formateres til
> "1979-18-03".

Hvorfor give brugeren den mulighed - hvorfor ikke insistere på et bestemt
datoformat?

"Indtast dato (dd.mm.yy)" eller sårn.

Det giver færre muligheder for misforståelser...

/Thomas



Nicolaj Bertelsen (13-02-2002)
Kommentar
Fra : Nicolaj Bertelsen


Dato : 13-02-02 08:49

>
> "Indtast dato (dd.mm.yy)" eller sårn.
>
> Det giver færre muligheder for misforståelser...
>
> /Thomas
>

Okay, hvis vi så siger at de kun må indtaste dato i formatet "18.03.79",
hvordan kommer jeg så over til "1979-03-18" som mySQL accepterer. Jeg har
prøvet strtotime, men den returnere -1.

Nicolaj



Thomas Lindgaard (13-02-2002)
Kommentar
Fra : Thomas Lindgaard


Dato : 13-02-02 13:24

> Okay, hvis vi så siger at de kun må indtaste dato i formatet "18.03.79",
> hvordan kommer jeg så over til "1979-03-18" som mySQL accepterer. Jeg har
> prøvet strtotime, men den returnere -1.

Hmm... jeg kan personligt godt lide explode():

$date = "18.03.79";
$exploded_date = explode(".", $date);
$new_date = $exploded_date(2).".".$exploded_date[1].".".$exploded_date[0];

Måske skal du sørge for at skrive "19" eller "20" foran, hvis ikke MySQL
godtager årstal på to cifre.

Der er muligvis en reg.exp-haj, som kan lave en one-liner...

Mvh. Thomas



Mogens Meier Christe~ (16-02-2002)
Kommentar
Fra : Mogens Meier Christe~


Dato : 16-02-02 04:36

"Thomas Lindgaard" <thomas@dnspilot.com> wrote in message
news:a4dls6$89m$1@news.cybercity.dk...

> > Okay, hvis vi så siger at de kun må indtaste dato i formatet "18.03.79",
> > hvordan kommer jeg så over til "1979-03-18" som mySQL accepterer.

> Hmm... jeg kan personligt godt lide explode():
>
> $date = "18.03.79";
> $exploded_date = explode(".", $date);
> $new_date = $exploded_date(2).".".$exploded_date[1].".".$exploded_date[0];

> Der er muligvis en reg.exp-haj, som kan lave en one-liner...

Argh... kan... ikke... lade... være.... :)

$new_date = ereg_replace('([0-9]{2})\.([0-9]{2})\.([0-9]{2})', '\3-\2-\1',
$date);

:)

Det er dog ikke sikkert det er den smarteste måde at gøre det på. Jeg har
ikke så meget styr på dato-behandlingen.

--
Mvh. Mogens
B.Sc. i datalogi. Søger IT-job på Fyn!
www.momech.dk




Mogens Meier Christe~ (16-02-2002)
Kommentar
Fra : Mogens Meier Christe~


Dato : 16-02-02 04:37

"Thomas Lindgaard" <thomas@dnspilot.com> wrote in message
news:a4dls6$89m$1@news.cybercity.dk...

> > Okay, hvis vi så siger at de kun må indtaste dato i formatet "18.03.79",
> > hvordan kommer jeg så over til "1979-03-18" som mySQL accepterer.

> Hmm... jeg kan personligt godt lide explode():
>
> $date = "18.03.79";
> $exploded_date = explode(".", $date);
> $new_date = $exploded_date(2).".".$exploded_date[1].".".$exploded_date[0];

> Der er muligvis en reg.exp-haj, som kan lave en one-liner...

Argh... kan... ikke... lade... være.... :)

$new_date = ereg_replace('([0-9]{2})\.([0-9]{2})\.([0-9]{2})', '\3-\2-\1',
$date);

:)

Det er dog ikke sikkert det er den smarteste måde at gøre det på. Jeg har
ikke så meget styr på dato-behandlingen.

I stedet for explode kunne man også matche med ereg. Ikke nær så effektivt,
men til gengæld kunne man på den måde samtidig få foretaget et tjek af
formatet.

--
Mvh. Mogens
B.Sc. i datalogi. Søger IT-job på Fyn!
www.momech.dk






Thomas Lindgaard (16-02-2002)
Kommentar
Fra : Thomas Lindgaard


Dato : 16-02-02 23:24

> Argh... kan... ikke... lade... være.... :)

Århh - din stakkel :)

/Thomas



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste