PHP timestamp de la date fuseau horaire
Je suis en tirant la raw générés timestamp mysql info de $item_date à partir de la base de données en php format de la date:
if (($timestamp = strtotime($item_date)) === false) {
echo "The timestamp string is bogus";
} else {
echo date('j M Y h:i:sA', $timestamp);
}
Sortie folowwing le serveur horaire (UTC):
12 Nov 2012 05:54:11PM
mais je veux qu'il à convertir en fonction du fuseau horaire de l'utilisateur
Exemple: disons que si le temps de l'utilisateur est 13 Nov 2012 07:00:00 AM(+0800 GMT) et l'heure du serveur est 12 Novembre 2012 11:00:00 PM(UTC) et l'horodatage de $item_date est 12 Nov 2012 10:30:00 PM (UTC) donc
Utilisateur avec (UTC) verrez $item_date:
12 Nov 2012 10:30:00 PM
et à l'utilisateur (+0800 GMT) $item_date:
13 Nov 2012 06:30:00 PM
Comment puis-je le faire?
Grâce
Si vous connaissez fuseau horaire, vous pouvez utiliser
mais c'est seulement à une zone je veux qu'il soit en mesure de détecter la zone de l'utilisateur de tout type comme +6gmt -8h gmt etc tout cela...
avez-vous stocké chaque fuseau horaire dans la DB ?
Pas de la base de données timestap est toute à l'UTC, je veux qu'il soit comme ceci: $item_date timestamp > PHP Format de Date suivez l'ordinateur de l'utilisateur fuseau horaire > sortie finale PHP date...
date_default_timezone_set('America/Los_Angeles');
mais c'est seulement à une zone je veux qu'il soit en mesure de détecter la zone de l'utilisateur de tout type comme +6gmt -8h gmt etc tout cela...
avez-vous stocké chaque fuseau horaire dans la DB ?
Pas de la base de données timestap est toute à l'UTC, je veux qu'il soit comme ceci: $item_date timestamp > PHP Format de Date suivez l'ordinateur de l'utilisateur fuseau horaire > sortie finale PHP date...
OriginalL'auteur Jeremy John | 2012-11-12
Vous devez vous connecter pour publier un commentaire.
Ce post a été mis à jour pour inclure un véritable exemple
J'espère que c'est maintenant assez clair ;).
exactement. Désolé d'être pas clair ici.
Hé là, j'ai mis à jour le post pour y inclure un exemple complet qui devrait vous rendre heureux maintenant ;). Veuillez marquer le message comme acceptée, si cela répond à votre question entièrement.
Hé là, nous nous rapprochons ;). Utilisation
DateTime::createFromFormat
pour initialiser à partir de votre mysql date. De faire comme ceci:$dt = DateTime::createFromFormat("Y-m-d H:i:s", $item_date);
et de supprimer l'appel$dt->setTimestamp($item_date);
. Assurez-vous d'enregistrer la page en tant que tz.php comme l'appel ajax est en invoquant cette page.Hey Merci de m'aider jusqu'à ce jour, il travaille maintenant! Mon hôte est à l'aide de PHP 5.2 si
DateTime::createFromFormat
ne fonctionne pas, mais j'ai utilisé ce pour le contourner:$item_date = '2012-11-12 23:15:20';
avec$dt = new DateTime($item_date);
OriginalL'auteur David Müller