web-dev-qa-db-fra.com

Date, heure et fuseaux horaires

Je suis un peu confus quant à l'utilisation de dates/heures avec des fuseaux horaires dans WordPress. J'ai les questions suivantes:

  1. A quoi sert le réglage du fuseau horaire dans la section Admin -> Paramètres?

  2. Supposons que l’heure actuelle dans l’heure GMT est 20h00 et que si je suis en HNE (il est donc 16h00 à l’HE), comment enregistrer l’heure du blog?

  3. Supposons qu'un lecteur lise le message et qu'il se trouve en Turquie. Donc, leur heure locale est 23h00, voient-ils 23h00 comme heure de publication?

  4. Supposons que j'utilise un type de publication personnalisé et que je dispose d'un champ date/heure supplémentaire pour les autres informations de date. Comment puis-je m'assurer que le champ de date personnalisé se comporte comme le champ WordPress?

Je m'excuse pour ces questions de base, mais j'ai vraiment besoin de votre aide pour les expliquer.

2
Greeso

A quoi sert le réglage du fuseau horaire dans la section Admin -> Paramètres?

Etant donné que WordPress gère seul le fuseau horaire (séparément de la fonctionnalité native PHP), c’est là que le réglage et le résultat sont stockés dans des options.

Chaque fois que tout ce qui fonctionne avec les fuseaux horaires doit se produire, le paramètre de fuseau horaire est récupéré et utilisé dans les calculs/la sortie.

Supposons que l’heure actuelle dans l’heure GMT est 20h00 et que si je suis en HNE (il est donc 16h00 à l’HE), comment enregistrer l’heure du blog?

Il y a deux champs de date dans la base de données pour chaque message. Ils enregistrent tous les deux la date sans informations de fuseau horaire, post_date est présumé être dans le réglage de fuseau horaire actuel et post_date_gmt est présumé être en UTC.

Malheureusement, une grande partie du code WP repose sur le code post_date, qui provoque de nombreux bogues. Par exemple, si le réglage du fuseau horaire est modifié , tous les messages passés ont maintenant une heure incorrecte car ils ont été stockés dans un fuseau horaire différent de l’actuel.

Supposons qu'un lecteur lise le message et qu'il se trouve en Turquie. Donc, leur heure locale est 23h00, voient-ils 23h00 comme heure de publication?

Non, WP traite et affiche le temps serveur, dans le contexte de ses paramètres. Tous les paramètres côté client ne sont pas pertinents, sauf s'ils sont implémentés volontairement, ce qui est relativement rare.

Supposons que j'utilise un type de publication personnalisé et que je dispose d'un champ date/heure supplémentaire pour les autres informations de date. Comment puis-je m'assurer que le champ de date personnalisé se comporte comme le champ WordPress?

Ne pas . La manière dont WP est un désordre très ancien et très personnalisé, avec beaucoup de bugs.

Toute solution propre doit fonctionner avec un stockage de date strict et non ambigu, tel que les horodatages Unix. Le choix spécifique dépend en grande partie de ce qui devrait être fait avec les informations et de l’importance de la lisibilité humaine au niveau de la mémoire.

1
Rarst

Un: But du réglage du fuseau horaire dans la section Admin -> Paramètres?
Deux: comment enregistrer l'heure du blog?

Pour définir votre heure locale, utilisez la commande wp-admin "Paramètres - Fuseau horaire. Comme commentaire, on dit: "Choisissez une ville dans le même fuseau horaire que vous." Pour chaque article de blog, la base de données contient deux champs: post_date et post_date_gmt. Ainsi, chaque fois que vous enregistrez une publication ou un brouillon de publication, cela prend à la fois l'heure - l'heure locale et l'heure GMT. L'heure locale (post_date) est générée par le paramètre que vous avez défini dans Paramètres - Fuseau horaire.

Troisièmement: les utilisateurs voient-ils l'heure locale dans l'heure postérieure?

Comme la publication est enregistrée avec les deux heures (UTC & votre heure locale ), la publication sera affichée avec la date et l'heure de votre publication, pas la leur, si vos paramètres le permettent. .

Quatre: Comment puis-je m'assurer que le champ de date personnalisé se comporte comme le champ WordPress?

Si votre champ personnalisé est simplement <input type="date"/>, j'espère que cela fonctionnera avec votre heure locale; S'il s'agit de <input type="datetime"/>, il générera une heure UTC. S'il s'agit de <input type="datetime-local"/>, il vous permettra de sélectionner votre heure locale. Mais pour moi, les deux dernières options sont identiques.
Et pour votre gentille compréhension, un champ personnalisé fonctionne comme une chaîne . Ainsi, tout ce que vous introduirez sur le terrain sera ce que vous obtiendrez. Assurez-vous que la chose est exactement ce que vous voulez sur le terrain, elle retournera la même chose. ( Plus d'informations sur les champs personnalisés de WordPress )

2
Mayeenul Islam