2010-06-29 9 views
0

Je tire les morceaux les plus récents de last.fm et les place sur mon site web. Problème: les temps sont récupérés au format UTC-0 et semblent être une heure en les comparant aux temps BST afin de calculer un horodatage flou ("il y a environ 5mins", "il y a environ une heure " etc).Conversion de UTS (UTC-0) fois en BST en PHP ou jQuery

Y a-t-il un moyen de résoudre ce problème afin que les heures correspondent toujours à BST/GMT et que vous ajustiez en entrant et en quittant l'heure d'été?

Voici un extrait de code PHP que j'utilise pour le moment, ce qui donne une heure de sortie.

$now = time(); // use this so all times are to the same second 
    $tz = getenv("TZ"); // save local setting so we can reset it later 
    putenv("TZ=Europe/London"); 

    $trackPlayedAt = date('d M Y H:i:s', $track->date->uts); 

Répondre

0

date() est automatiquement mis en forme dans le fuseau horaire local. Le fuseau horaire dépend de la configuration du serveur PHP. Si tout est réglé correctement, il devrait juste fonctionner.

Si vous utilisez PHP 5.3, vous avez plus d'options. Commentez avec quelle version de PHP vous exécutez.

+0

Ah j'ai PHP 5.2.6 – Scotty

+0

Vous avez raison! Le script fonctionne très bien sur mon hébergement, mais ne fonctionne pas correctement avec ma configuration MAMP locale. Je ne sais pas trop comment le configurer: S – Scotty

+0

Cool. Oui, les dates peuvent être drôles si vous essayez de dur. J'ai décidé il y a des années de laisser simplement 'date()' faire c'est penser. Vous pouvez vérifier le paramètre de fuseau horaire dans votre fichier php.ini ou exécuter 'phpinfo()'. Vous êtes probablement juste manquer DST ou quelque chose. –