webForumDet fria alternativet

Omvandling av tider mellan tids zoner.

PHP

4 svar · 370 visningar · startad av Viktor

Medlem sedan aug. 20021 752 inlägg
Frågan#1

Hej

Jag har ett datum som ser ut såhär (hämtat från en XML file) "2004-10-24 16:20 GMT-03:00", eller "2004-10-10 15:50 GMT+09:00", nu vill jag på min sida visa datumet och tiden som CET, finns det någon inbyggd funktion i PHP som kan göra detta?

/Viktor

Medlem sedan dec. 2003153 inlägg
#2

Går inte det där att fixa såhär?

1. Plocka ut datum och tid ur din sträng, alltså "2004-10-24 16:20" eller "2004-10-10 15:50".
2. Kör detta i strtotime och spara resultatet.
3. Plocka ut timmen som står efter GMT i din sträng, alltså "3" eller "9" samt dess tecken.
4. Räkna om det till sekunder (*3600) och addera/subtrahera (beroende på tecknet) det till ditt timestamp du fick ovan.

Medlem sedan aug. 20002 975 inlägg
#3

Nu sitter jag inte till så jag kan testa själv, men borde det inte vara möjligt att göra så här:

$time_gmt = "2004-10-24 16:20 GMT-03:00";

$time = date("Y-m-d H:i", strtotime($time_gmt));
Medlem sedan dec. 2003153 inlägg
#4

Matte: Säkert. Jag skulle då förvänta mig att strtotime() funkar så. Eftersom jag inte var säker blev det ovanstående lösning då inte jag heller har möjlighet att testa.

Medlem sedan aug. 2000374 inlägg
#5

lunne82 skrev:

[..]Jag skulle då förvänta mig att strtotime() funkar så. Eftersom jag inte var säker blev det ovanstående lösning då inte jag heller har möjlighet att testa.

mundus:~ chansen$ php -v
PHP 4.3.2 (cli) (built: Sep 13 2003 22:04:20)
Copyright (c) 1997-2003 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2003 Zend Technologies

mundus:~ chansen$ php -r 'echo date( "Y-m-d H:i", strtotime( "2004-10-24 16:20 GMT-03:00" ) ), "\n";'
1970-01-01 00:59
252 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)