---
title: "Problem med konvertering av tid till UNIX_TIMESTAMP"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/172960-problem-med-konvertering-av-tid-till-unix-timestamp"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "lillebror"
published: "2008-07-24T13:47:21.000Z"
updated: "2011-05-02T22:19:36.000Z"
replies: 9
views: 1532
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/172960-problem-med-konvertering-av-tid-till-unix-timestamp"
---

# Problem med konvertering av tid till UNIX_TIMESTAMP

## #1 — lillebror, 2008-07-24T13:47Z

Hej,

Jag stöter på patrull när jag försöker konvertera foruminlägg med tidsformatet **"2007-08-20 00:52:49"** till **UNIX_TIMESTAMP()** som sedan sparas i vBulletindatabasen som ett INT-tal.

När jag läser tidsstämpeln i vBulletin för den importerade posten så är värdet följande:

2007-08-19 22:52. Här ser man tydligt att det finns en diff i tiden. Vad kan jag ha missat?

Följande kod har jag i SQL-satsen:

```
UNIX_TIMESTAMP('".$array['posted']."')
```

Permalänk: https://www.webforum.nu/p/172960

## #2 — neox83, 2008-07-24T14:36Z

Vår kära sommartid brukar ge upphov till sådana roliga differanser

Permalänk: https://www.webforum.nu/p/2127094

## #3 — spango, 2008-07-24T14:38Z

Låter som ett tidszonsfel, datumet du får in är svensk tid (UTC+2h) men UNIX_TIMESTAMP tror antagligen att det är UTC. Du kan prova med *UNIX_TIMESTAMP(CONVERT_TZ('".$array\['posted'\]."', 'CET', 'GMT'))* men det kommer paja om din kod körs i en annan tidszon. Vore kanske bättre att göra konverteringen i PHP.
<http://dev.mysql.com/doc/refman/4.1/en/date-and-time-functions.html#function_convert-tz>

Permalänk: https://www.webforum.nu/p/2127095

## #4 — Troxy, 2008-07-24T17:08Z

Resultaten av datum-funktionerna baseras på aktuell tidszon.
Precis som med teckenkodning kan man ange tidszon för kopplingen.
Kör detta uttryck precis när du öppnar mysql-kopplningen så blir det svensk tidszon för allt:

```
SET time_zone = 'Europe/Stockholm';
```

Permalänk: https://www.webforum.nu/p/2127122

## #5 — lillebror, 2008-07-24T23:20Z

> **Troxy skrev:**
>
> Resultaten av datum-funktionerna baseras på aktuell tidszon.
> Precis som med teckenkodning kan man ange tidszon för kopplingen.
> Kör detta uttryck precis när du öppnar mysql-kopplningen så blir det svensk tidszon för allt:
>
>
> ```
> SET time_zone = 'Europe/Stockholm';
> ```

Det fungerade inte med den tidszon som du angav. Var kan jag hitta en lista över samtliga zoner? Jag testade att söka på MySQL utan resultat.

Skickar jag in den här SQL-satsen med tidszonen innan jag kör mitt INSERT-statement för inläggen?

Permalänk: https://www.webforum.nu/p/2127171

## #6 — spango, 2008-07-25T06:44Z

> **lillebror skrev:**
>
> Det fungerade inte med den tidszon som du angav. Var kan jag hitta en lista över samtliga zoner? Jag testade att söka på MySQL utan resultat.

På sidan jag länkade till... ;)

> **Manualen skrev:**
>
> **Note**
> 
> To use named time zones such as 'MET' or 'Europe/Moscow', the time zone tables must be properly set up. See [Section 9.7, “MySQL Server Time Zone Support”](http://dev.mysql.com/doc/refman/4.1/en/time-zone-support.html) , for instructions.

Men undvik att hårdkoda värdet för tidszonen, det kommer ställa till problem när du minst behöver det.

Permalänk: https://www.webforum.nu/p/2127182

## #7 — Troxy, 2008-07-25T07:46Z

> **lillebror skrev:**
>
> Skickar jag in den här SQL-satsen med tidszonen innan jag kör mitt INSERT-statement för inläggen?

I början av koden där du öppnar mysql-kopplingen.

Permalänk: https://www.webforum.nu/p/2127197

## #8 — lillebror, 2008-08-02T21:57Z

> **Troxy skrev:**
>
> I början av koden där du öppnar mysql-kopplingen.

Att det inte fungerade första gången berodde på att de fem tabeller i MySQL-databasen som har med tidzoner att göra var tomma. 

Jag gick in på MySQL:s hemsida och tankade ner ett paket med de senaste tidszonerna som jag kopierade in i databasen.

Testade att köra med båda varianterna:

1\. SET time_zone = 'Europe/Stockholm';
2\. UNIX_TIMESTAMP(CONVERT_TZ('".$array\['posted'\]."', 'CET', 'GMT'))

Tiden diffar fortfarande fel. Den visar två timmar för lite mot vad den ska göra.

Några idéer på vad jag kan testa ytterligare?

Permalänk: https://www.webforum.nu/p/2128295

## #9 — lillebror, 2008-08-03T19:30Z

Av någon konstig anledning så fungerar det helt plötsligt med tiden. Den stämmer. Jag vet inte riktigt vad jag har gjort. Skumt. Men jag är nöjd med resultatet :)

Permalänk: https://www.webforum.nu/p/2128422

## #10 — lillebror, 2011-05-02T22:19Z

Hej,

Migreringsarbetet lades på is. Därför aktualiserar jag den här frågan igen. För nu fungerar tidskonverteringen inte helt plötsligt

Vad gör jag för fel i koden? Det diffar på en timme.

Permalänk: https://www.webforum.nu/p/2275314

---

Tråden på webben: https://www.webforum.nu/amne/php/172960-problem-med-konvertering-av-tid-till-unix-timestamp
