/ 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
Ændre tid
Fra : Arvid Mærsk


Dato : 11-01-07 14:06

Jeg har et tilmeldingssystem hvor tilmeldingstidspunktet lægges i tabellen med:

$sql = "insert into tabel(navn,tid)   values('$navn',now())";

Det virker perfekt bortset fra at MySQL-serverens tid er GMT og dermed
bliver tilmeldingstidspunktet registreret 1 time senere end dansk lokaltid.

Jeg får output af tidspunktet med:

$sql = "select navn, date_format(tid, '%e.%c.%Y kl. %H:%i:%s') as tiden from
tabel";
echo "$navn, $tiden";

Her vises naturligvis GMT-tidspunktet, men hvordan får jeg output justeret,
således at der tages højde for tidsforskellen?

--
AM

 
 
Martin (11-01-2007)
Kommentar
Fra : Martin


Dato : 11-01-07 14:32

Arvid Mærsk wrote:
> Jeg har et tilmeldingssystem hvor tilmeldingstidspunktet lægges i
> tabellen med:
>
> $sql = "insert into tabel(navn,tid) values('$navn',now())";
>
> Det virker perfekt bortset fra at MySQL-serverens tid er GMT og dermed
> bliver tilmeldingstidspunktet registreret 1 time senere end dansk lokaltid.

Hvis det er på en dansk webhost, så synes jeg at du lige skulle kontakte
deres support eller lign, og lige få deres server tid sat ordentligt ind :)

>
> Jeg får output af tidspunktet med:
>
> $sql = "select navn, date_format(tid, '%e.%c.%Y kl. %H:%i:%s') as tiden

Du kan skrive
DATE_FORMAT(
DATE_ADD(tid, INTERVAL 1 HOUR), '%e.%c.%Y kl. %H:%i:%s') AS tiden

Altså DATE_ADD ligger 1 time til tiden i ovenstående.

Men det er jo bare ikke særlig fedt egentlig - det burde være serveren
der skal ændres imo

Arvid Mærsk (11-01-2007)
Kommentar
Fra : Arvid Mærsk


Dato : 11-01-07 15:16

Hej, d. 11-01-2007 14:32 skrev du bl.a.:

> Du kan skrive
> DATE_FORMAT(
> DATE_ADD(tid, INTERVAL 1 HOUR), '%e.%c.%Y kl. %H:%i:%s') AS tiden
>
> Altså DATE_ADD ligger 1 time til tiden i ovenstående.
>
> Men det er jo bare ikke særlig fedt egentlig - det burde være serveren
> der skal ændres imo

Jeg prøver. Jeg tør næsten ikke nævne det, men sitet ligger hos Servage
Og selv om serveren er i Tyskland, er deres servertime GMT. Jeg har
kontaktet Servage og løsningen var at jeg skulle justere i scriptet.
Bortset fra det er MySQL-serveren hos 1go.dk præcis 30 minutter foran vores
okaltid, blot til info.

--
hilsen AM

Martin (11-01-2007)
Kommentar
Fra : Martin


Dato : 11-01-07 16:05

Arvid Mærsk wrote:
> Og selv om serveren er i Tyskland, er deres servertime GMT. Jeg har
> kontaktet Servage og løsningen var at jeg skulle justere i scriptet.

Må vi se løsningen?


> Bortset fra det er MySQL-serveren hos 1go.dk præcis 30 minutter foran
> vores okaltid, blot til info.

Nu ser jeg heller ikke 1go.dk som særlig seriøs, men det er nok bare mig :D

Arvid Mærsk (11-01-2007)
Kommentar
Fra : Arvid Mærsk


Dato : 11-01-07 16:25

Hej, d. 11-01-2007 16:04 skrev du bl.a.:

> Må vi se løsningen?

Løsningen? At jeg skulle justere scriptet og det gjorde jeg ved at
copy/paste dit forslag

DATE_FORMAT(
DATE_ADD(tid, INTERVAL 1 HOUR), '%e.%c.%Y kl. %H:%i:%s') AS tiden

Det virker perfekt efter hensigten og med linket fra Jesper fandt jeg ud af
både at lægge tid til og trække tid fra. Ikke blot timer men også minutter.
Så problemet med 1go.dk fik jeg også klaret. Kanon til jer begge.

--
hilsen AM

Martin (11-01-2007)
Kommentar
Fra : Martin


Dato : 11-01-07 16:55

Arvid Mærsk wrote:
> Hej, d. 11-01-2007 16:04 skrev du bl.a.:
>
> > Må vi se løsningen?
>
> Løsningen? At jeg skulle justere scriptet og det gjorde jeg ved at
> copy/paste dit forslag

Ahh.. jeg havde læst det som om du skulle ændre noget, som supporten
havde sagt :)

> Det virker perfekt efter hensigten og med linket fra Jesper fandt jeg ud
> af både at lægge tid til og trække tid fra. Ikke blot timer men også
> minutter. Så problemet med 1go.dk fik jeg også klaret. Kanon til jer begge.

Jamen, det var så lidt - jeg ville nok bruge Jespers forslag hvis det er
en tidszone der er forskellen.

JMo. (11-01-2007)
Kommentar
Fra : JMo.


Dato : 11-01-07 20:20

Arvid Mærsk wrote:

> DATE_FORMAT(
> DATE_ADD(tid, INTERVAL 1 HOUR), '%e.%c.%Y kl. %H:%i:%s') AS tiden
>
> Det virker perfekt efter hensigten og med linket fra Jesper fandt jeg
> ud af både at lægge tid til og trække tid fra. Ikke blot timer men
> også minutter. Så problemet med 1go.dk fik jeg også klaret. Kanon til
> jer begge.

Men pas på når vi skifter til sommer-tid.



Jesper Brunholm (11-01-2007)
Kommentar
Fra : Jesper Brunholm


Dato : 11-01-07 15:54

Arvid Mærsk skrev:
> Jeg har et tilmeldingssystem hvor tilmeldingstidspunktet lægges i
> tabellen med:
>
> $sql = "insert into tabel(navn,tid) values('$navn',now())";
>
> Det virker perfekt bortset fra at MySQL-serverens tid er GMT og dermed
> bliver tilmeldingstidspunktet registreret 1 time senere end dansk lokaltid.
>
> Jeg får output af tidspunktet med:
>
> $sql = "select navn, date_format(tid, '%e.%c.%Y kl. %H:%i:%s') as tiden
> from
> tabel";
> echo "$navn, $tiden";
>
> Her vises naturligvis GMT-tidspunktet, men hvordan får jeg output justeret,
> således at der tages højde for tidsforskellen?

Du kan løse det med PHP ved at hente et UNIX_TIMESTAMP(tid) as tiden, og
så formatere med date(), eller omregne med mktime, ingen af delene er
dog særligt elegant.

Hvis du vil løse det i SQL-querien (som du næsten har gjort her), så er
det ret beset et databasespørgsmål, så du kan overveje dk.edb.database
som relevant gruppe næste gang du har et lignende spørgsmål

Når det er sagt, så er der til gengæld gode værktøjer til rådighed,
lavet til formålet:
<http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#id3086191>

Mvh

Jesper Brunholm

Arvid Mærsk (11-01-2007)
Kommentar
Fra : Arvid Mærsk


Dato : 11-01-07 16:08

Hej, d. 11-01-2007 15:54 skrev du bl.a.:

> Når det er sagt, så er der til gengæld gode værktøjer til rådighed,
> lavet til formålet:
> <http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#id3086191>

Tak for linket og tak til Martin hvis løsning virker fuldstændigt efter
hensigten.

--
hilsen Arvid

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