2012-06-03 22 views
5

Ho codice:strftime fare prima capitale lettera (maiuscolo) in PHP

<?php echo strftime("%Y %B %e, %A")?> 

In alcune lingue che ricevo:

2012 Junio ​​3, domingo

voglio che la prima lettera di tutte le parole sarebbe maiuscola (maiuscola), quindi sarebbe simile a:

2012 Junio ​​3, Domingo

non ho trovato alcuna risposta in internet, qualcuno ha un'idea? :)

+4

Ti rendi conto che mesi e giorni feriali non sono maiuscole in spagnolo, giusto? –

+1

È lo stesso problema in molte altre lingue, come il lituano, il greco, il russo e così via. – user1384668

risposta

4
echo ucwords(strftime("%Y %B %e, %A")); 
+1

Dato che 'strftime()' fornisce una stringa di data localizzata, e alcune localizzazioni usano set di caratteri multibyte, sarebbe saggio tenerne conto. Vedi http://stackoverflow.com/questions/2517947/ucfirst-function-for-multibyte-character-encodings per un esempio di come scrivere una funzione ucfirst() multi-byte-characterset-safe. – Spudley

0
$ php -a 
Interactive shell 

php > $x = strftime("%Y %B %e, %A"); 
php > $str = explode(" ", $x); 
php > foreach ($str as $i) { print ucfirst($i) . " "; }; 
2012 June 3, Sunday 
php > 
0

Prova styling l'output come questo:

strftime('<span style="text-transform: capitalize;">%Y %B %e, %A</span>') 

o

echo '<span style="text-transform: capitalize;">' . strftime('%Y %B %e, %A') . '</span>'; 

In questo modo è possibile scegliere quali parole per capitalizzare. Nel tuo caso, credo che i lavori ucwords, dal momento che vuoi che tutte le tue parole inizino con lettere maiuscole.

Problemi correlati