Comment obtenir le timestamp Unix, en php basé sur le fuseau horaire
Le premier Code
echo time() . '<br/>';
echo date('Y-m-d H:i:s') . '<br/>';
date_default_timezone_set('America/New_York');
echo time() . '<br/>';
print_r($timezones[$timezone] . '<br/>');
echo date('Y-m-d H:i:s') . '<br/>';
Dans le code ci-dessus, la date est imprimée en fonction du fuseau horaire mais timestamp unix de l'est, même après réglage du fuseau horaire par défaut
Comment peut-on imprimer le timestamp unix, selon le fuseau horaire?
OriginalL'auteur jimy | 2011-12-29
Vous devez vous connecter pour publier un commentaire.
La réponse fournie par Volkerk est correct, mais si vous avez vraiment besoin d'un travail autour de regarder mon exemple.
Obtenir le régulier d'horodatage et ajouter le décalage UTC
Je suis d'accord avec vous tout à fait, et je ne recommanderais pas cette. Stockage sous forme de timestamp unix serait mieux et lors de l'affichage des données de convertir au bon fuseau horaire. Si l'utilisateur va stocker ces informations dans une base de données, je voudrais jeter le timestamp unix de formater complètement et aller pour un datetime type de base de données (en raison des différentes datetime/fonctions qui rendront votre vie plus facile)
Est ce droit -
$date = new DateTime(null, new DateTimeZone('Philippines'));
. Je ne veux que vous obtenez à partir de PH.Remplacer: "les Philippines" avec: "Asia/Manila'
OriginalL'auteur Cecil Zorg
https://en.wikipedia.org/wiki/Unix_time
Le timestamp unix n'est pas affectée par un fuseau horaire. Réglage du fuseau horaire n'affecte que l'interprétation de la valeur d'horodatage.
vous devez stocker le timestamp et l'id de fuseau horaire. Ou vous stockez une autre date/heure de la représentation, qui peut ou peut ne pas inclure le fuseau horaire, comme par exemple la norme ISO 8601 date
OriginalL'auteur VolkerK
Eu le même problème moi-même, et c'est l'approche la plus simple que je pouvais faire assez rapidement.
OriginalL'auteur dalslandan200
A vu les réponses avec le décalage solution et je pense qu'à moins de vous faire économiser temps dans la base de données en UTC ou le timestamp Unix, ils ne seront pas vous aider. Le problème, quand il s'agit de méthode gettimestamp(), c'est que le fuseau horaire n'est pas considérée comme même lorsque vous lancez l'objet... Comment l'expliquer :)... disons que vous avez des événements avec la date et l'heure en vous db. Vous aussi avez-vous le fuseau horaire configuré correctement. Je vais les mettre en vars pour cet exemple, il est donc plus visible:
Maintenant...lorsque vous faites cela, vous passez à la date /heure et le fuseau horaire du constructeur. Ce que vous attendez, c'est que php respecte votre fuseau horaire et vous obtenez UTC timestamp qui correspond à 16:45 à Berlin qui serait UTC 15:45 en hiver et UTC 14:45 l'été. Il ne se produira pas - ce que vous obtenez est le timestamp correspondant à l'UTC 16:45. Si vous ajoutez le décalage de maintenant, vous serez heure ou deux de congé.
La bonne façon de le faire est de lancer l'objet, définir/changer de fuseaux horaires, mettre en forme un datetime qui respecte le fuseau horaire, puis obtenir de l'horodatage de la mise en forme de type datetime. Il pourrait être un peu plus lent, mais c'est le fuseau horaire échouer prouver:
OriginalL'auteur Iliya Kolev