/ 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 og date.
Fra : Mathias Mejborn


Dato : 26-07-06 19:49

Hej gruppe.

Jeg sidder og slås lidt med date funktionen i php.

Det virker fint nok hvis jeg bare skriver:

d. <?=$d_gtagwall['date'];?>

Men hvis jeg skriver:

d. <?=date("d/m Y - H:i", $d_gtagwall['date']);?>

Så bliver datoen udskrevet således:

d. 01/01 1970 - 01:33

Nogen ide til hvad jeg gør galt, har kigget på date funktionen på
php.net men synes ikke at jeg der kan se hvad jeg gør galt.

--
Mvh
Mathias Mejborn
mathias@mejborn.dk
http://mejborn.dk

 
 
Bertel Lund Hansen (26-07-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 26-07-06 20:07

Mathias Mejborn skrev:

> Men hvis jeg skriver:

> d. <?=date("d/m Y - H:i", $d_gtagwall['date']);?>

> Så bliver datoen udskrevet således:

> d. 01/01 1970 - 01:33

$d_gtagwall['date'] er vel ikke et timestamp? Man kan ikke bare
putte hvad som helst i date().

Hvis du bare skal have dags tid og dato, kan du bruge

d. <?=date("d/m Y - H:i");?>

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

Christian Joergensen (26-07-2006)
Kommentar
Fra : Christian Joergensen


Dato : 26-07-06 20:13

Mathias Mejborn <mame06@ceus.dk> writes:

> Det virker fint nok hvis jeg bare skriver:
>
> d. <?=$d_gtagwall['date'];?>
>
> Men hvis jeg skriver:
>
> d. <?=date("d/m Y - H:i", $d_gtagwall['date']);?>
>
> Så bliver datoen udskrevet således:
>
> d. 01/01 1970 - 01:33
>
> Nogen ide til hvad jeg gør galt, har kigget på date funktionen på
> php.net men synes ikke at jeg der kan se hvad jeg gør galt.

Hvad indeholder $d_gtagwall['date']?

--
Christian Joergensen | Linux, programming or web consultancy
http://www.razor.dk | Visit us at: http://www.gmta.info

Mathias Mejborn (26-07-2006)
Kommentar
Fra : Mathias Mejborn


Dato : 26-07-06 20:17

Christian Joergensen wrote:
> Mathias Mejborn <mame06@ceus.dk> writes:
>
>> Det virker fint nok hvis jeg bare skriver:
>>
>> d. <?=$d_gtagwall['date'];?>
>>
>> Men hvis jeg skriver:
>>
>> d. <?=date("d/m Y - H:i", $d_gtagwall['date']);?>
>>
>> Så bliver datoen udskrevet således:
>>
>> d. 01/01 1970 - 01:33
>>
>> Nogen ide til hvad jeg gør galt, har kigget på date funktionen på
>> php.net men synes ikke at jeg der kan se hvad jeg gør galt.
>
> Hvad indeholder $d_gtagwall['date']?
>
Jo det er et timestamp, udskrift fra mysql:

date    timestamp        ON UPDATE CURRENT_TIMESTAMP    Yes
CURRENT_TIMESTAMP         Change     Drop     Primary     Index    
Unique     Fulltext

--
Mvh
Mathias Mejborn
mathias@mejborn.dk
http://mejborn.dk

bonfils (26-07-2006)
Kommentar
Fra : bonfils


Dato : 26-07-06 22:13

On 26 jul 2006, someone impersonating Mathias Mejborn <mame06@ceus.dk>
came to dk.edb.internet.webdesign.serverside.php and said:

> Christian Joergensen wrote:
>> Mathias Mejborn <mame06@ceus.dk> writes:
>>
>>> Det virker fint nok hvis jeg bare skriver:
>>>
>>> d. <?=$d_gtagwall['date'];?>
>>>
>>> Men hvis jeg skriver:
>>>
>>> d. <?=date("d/m Y - H:i", $d_gtagwall['date']);?>
>>>
>>> Så bliver datoen udskrevet således:
>>>
>>> d. 01/01 1970 - 01:33
>>>
>>> Nogen ide til hvad jeg gør galt, har kigget på date funktionen på
>>> php.net men synes ikke at jeg der kan se hvad jeg gør galt.
>>
>> Hvad indeholder $d_gtagwall['date']?
>>
> Jo det er et timestamp, udskrift fra mysql:
>
> date timestamp ON UPDATE CURRENT_TIMESTAMP
> Yes CURRENT_TIMESTAMP Change Drop
> Primary Index
> Unique Fulltext

Desværre bruger MySQL og PHP's date-funktioner to forskellige typer af
timestamps: PHP's datefunktioner er bygget til at manipulere det
klassiske Unix-timestamp (som tæller sekunder fra 1. januar 1970 og
derfor ikke umiddelbart er læseligt med det blotte øje). MySQL har
derimod sit timestamp-format, hvor 1. januar 1970 vil skrives som
"19700101000000". Let læseligt, men ikke kompatibelt med PHP's date-
funktioner.
Der er to muligheder for at løse dette:
Enten bruger man MySQL's timestamp og bruger PHP's string-funktioner på
datoerne.
Eller - hvis man gerne vil bruge de mange fede PHP date-funktioner -
konverterer man i sit SQL-request MySQL's timestamps til Unix-timestamps
vha. MySQL-funktionen UNIX_TIMESTAMP().
Bruger man meget dato-formatering, er sidstnævnte en rigtig god vane at
tillæge sig.

--
bonfils
http://kim.bonfils.com

Jesper Brunholm (26-07-2006)
Kommentar
Fra : Jesper Brunholm


Dato : 26-07-06 23:29

bonfils skrev:
>> Jo det er et timestamp, udskrift fra mysql:
>>
>> date timestamp ON UPDATE CURRENT_TIMESTAMP
>> Yes CURRENT_TIMESTAMP Change Drop
>> Primary Index
>> Unique Fulltext

Hvis jeg har forstået dig rigtigt (Mathias, ikke bonfils), så hedder din
kolonne "date". Det er _ikke_ et reserveret ord (selv om der står det i
nogle af de uautoriserede manualer), så du er ikke i problemer. Jeg vil
dog godt gøre opmærksom på eksistensen af reserverede ord, som man ikke
kan bruge som kolonnenavne uden en masse bøvl.

<http://dev.mysql.com/doc/refman/5.0/en/legal-names.html>

- det var et sidespring, og måske vidste du det godt... Jeg har brugt et
par dage på en fejlsøgning engang, så jeg er måske lidt hys hvad lige
det angår

> Desværre bruger MySQL og PHP's date-funktioner to forskellige typer af
> timestamps
[...]
> Eller - hvis man gerne vil bruge de mange fede PHP date-funktioner -
> konverterer man i sit SQL-request MySQL's timestamps til Unix-timestamps
> vha. MySQL-funktionen UNIX_TIMESTAMP().

og i praksis:
"SELECT UNIX_TIMESTAMP(dato) AS dato FROM mintabel"

mvh

Jesper Brunholm

Mathias Mejborn (27-07-2006)
Kommentar
Fra : Mathias Mejborn


Dato : 27-07-06 10:49

Jesper Brunholm wrote:
> bonfils skrev:
>>> Jo det er et timestamp, udskrift fra mysql:
>>>
>>> date timestamp ON UPDATE CURRENT_TIMESTAMP
>>> Yes CURRENT_TIMESTAMP Change Drop
>>> Primary Index Unique Fulltext
>
> Hvis jeg har forstået dig rigtigt (Mathias, ikke bonfils), så hedder din
> kolonne "date". Det er _ikke_ et reserveret ord (selv om der står det i
> nogle af de uautoriserede manualer), så du er ikke i problemer. Jeg vil
> dog godt gøre opmærksom på eksistensen af reserverede ord, som man ikke
> kan bruge som kolonnenavne uden en masse bøvl.
>
> <http://dev.mysql.com/doc/refman/5.0/en/legal-names.html>
>
> - det var et sidespring, og måske vidste du det godt... Jeg har brugt et
> par dage på en fejlsøgning engang, så jeg er måske lidt hys hvad lige
> det angår
>
>> Desværre bruger MySQL og PHP's date-funktioner to forskellige typer af
>> timestamps
> [...]
>> Eller - hvis man gerne vil bruge de mange fede PHP date-funktioner -
>> konverterer man i sit SQL-request MySQL's timestamps til
>> Unix-timestamps vha. MySQL-funktionen UNIX_TIMESTAMP().
>
> og i praksis:
> "SELECT UNIX_TIMESTAMP(dato) AS dato FROM mintabel"
>
> mvh
>
> Jesper Brunholm
Tak for hjælpen, det løste mit problem.

--
Mvh
Mathias Mejborn
mathias@mejborn.dk
http://mejborn.dk

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

Månedens bedste
Årets bedste
Sidste års bedste