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?
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
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:
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?
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 :)