2009-11-06 4 views
2

Dans la fonction de date PHP ci-dessous, je voudrais mettre quelques espaces entre "a" et "\ N \ e \ w". Comment est-il fait?Mettre des espaces dans un format de date PHP

'l, F j, Y, g:i a \N\e\w \Y\o\r\k \t\i\m\e' 

Merci à l'avance,

John

+0

Ne serait-il une simple solution pour simplement utiliser ? – phidah

+0

Il est peut-être encore mieux de sortir la partie non-enveloppante de la chaîne dans un '' et de définir son 'espace-blanc' à 'nowrap' (idéalement en CSS). Séparons les préoccupations;) ' une heure de New York' – Kout

Répondre

15

Vous devrez insérer:

& \ nb \ sp;

pour chaque espace souhaité. Cela empêchera les caractères d'être reconnus comme des caractères de date spéciaux.

2

Pour autant que je sache, la fonction date() ne pas ignorer les espaces blancs que vous mettez dans la chaîne de format. Donc, mettez autant d'espace que nécessaire.

Vous devrez probablement utiliser   pour les espaces consécutifs dans votre sortie HTML, si vous ne voulez pas que les navigateurs ignorent les espaces supplémentaires.

Plutôt que de mettre   directement dans votre chaîne de format de date (vous auriez besoin de l'échapper bien sûr), il vaudrait mieux faire la conversion nécessaire des espaces consécutifs en espaces insécables séparément. Ensuite, vous pouvez avoir une seule fonction qui fait cela, et oublier de mettre   dans toutes vos chaînes de format. Cela vous sera particulièrement utile si vous devez générer une sortie qui n'est pas du HTML.

+0

J'ai déjà essayé les deux. L'espace blanc a été ignoré et & nbsp a renvoyé des caractères étranges. – John

+0

John: avez-vous échappé ' ' pour la chaîne de format de date? –

2

Par souci de clarté, vous pouvez simplement vouloir réécrire cela comme:

date('l, F j, Y, g:i a').' New York time'; 
2

Mon conseil serait de ne pas placer la chaîne littérale dans la chaîne de formatage de la date, de sorte que vous ne devez pas y échapper:

$string = date('l, F j, Y, g:i a'). '  (or  ) New York Time'; 
6

Juste un petit commentaire: cela ne fonctionne que dans les guillemets simples, pas dans les doubles. Je veux dire date('j.&\nb\sp;n.', $date) fonctionne comme décrit, date("j.&\nb\sp;n.", $date) sorties désordre.

1

Mettez \t pour chaque espace entre la date et la valeur temps en date fonction php ...... ........... par exemple date("d-m-Y \t h:i:s")

+0

Mais assurez-vous d'utiliser des guillemets doubles i.e '" "' pour le format sinon le '\ t' sera traduit en littéral' t' au lieu de l'espace –