/ 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
PHP + MYSQL og datoforvirring
Fra : tsualc@gmail.com


Dato : 02-10-08 16:20

Jeg er ved at lave en arrangementskalender til en foreningsside. Jeg
har imidlertid et problem med visning at datoer

Hvis jeg bruger

echo date("d - m - Y", $data[0]);

får jeg kun 01 - 01 - 1970

hvis jeg derimod bruger

echo "$data[0]",

får jeg 2008-10-22

Jeg kan sagten sortere efter dato, men hvis jeg prøver at formatere
datoen får jeg kun 1/1-1970 frem. Er der nogen som har et tip til
dette?

Claus

 
 
Christian Hansen (02-10-2008)
Kommentar
Fra : Christian Hansen


Dato : 02-10-08 23:27

Hej Claus

date tager mod et unix timestamp som 2. parameter. $data[0] skulle altså
indeholde noget ala 1224651600, hvilket er antallet af sekunder siden
1/1 1970

Mvh Christian

tsualc@gmail.com wrote:
> Jeg er ved at lave en arrangementskalender til en foreningsside. Jeg
> har imidlertid et problem med visning at datoer
>
> Hvis jeg bruger
>
> echo date("d - m - Y", $data[0]);
>
> får jeg kun 01 - 01 - 1970
>
> hvis jeg derimod bruger
>
> echo "$data[0]",
>
> får jeg 2008-10-22
>
> Jeg kan sagten sortere efter dato, men hvis jeg prøver at formatere
> datoen får jeg kun 1/1-1970 frem. Er der nogen som har et tip til
> dette?
>
> Claus


--
Christian Hansen
http://www.resource-it.dk/

Bertel Lund Hansen (03-10-2008)
Kommentar
Fra : Bertel Lund Hansen


Dato : 03-10-08 06:00

tsualc@gmail.com skrev:

> echo date("d - m - Y", $data[0]);

> får jeg kun 01 - 01 - 1970

> hvis jeg derimod bruger

> echo "$data[0]",

> får jeg 2008-10-22

Hvis du kun skal bruge talformat, så er den nemmeste løsning at
eksplodere $data[0]:

list($year,$month,$day)=explode('-',$data[0]);
echo "$day - $month - $year";

Hvis du vil respektere standarderne, vælger du
echo "$day-$month-$year";
echo "$day.$month.$year";
echo "$day/$month-$year";

eller bruger $data[0] direkte.

En anden ting:
Når du vil formatere datoer i PHP, så brug altid strftime() hvis
ikke der er tvingende grunde til andet. Den respekterer
locale-settings hvilket date() ikke gør.

--
Bertel
http://bertel.lundhansen.dk/      FIDUSO: http://fiduso.dk/

Dan Storm (03-10-2008)
Kommentar
Fra : Dan Storm


Dato : 03-10-08 07:48

tsualc@gmail.com skrev:
> Hvis jeg bruger
>
> echo date("d - m - Y", $data[0]);

echo date("d - m - Y", strtotime($data[0]));

>
> får jeg kun 01 - 01 - 1970

det er fordi at date bruger et timestamp og ikke et format.
Som nævnt i et andet svar så er timestampet det antal sekunder der er
gået siden 01/01 - 1970 og det er de sekunder som date() skal bruge.

strtotime() er en funktion der forsøger at parse din streng til et
timestamp og strengen '2008-10-22' er ikke et problem, da det er en en
gængs standard.

--
Dan Storm - storm at err0r dot dk / http://err0r.dk

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31962
Nyheder : 719565
Indlæg : 6408176
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste