2012-06-03 94 views
5

tengo código:strftime hacer la primera letra mayúscula (mayúscula) en PHP

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

En algunos idiomas que recibo:

2012 junio 3, Domingo

quiero que La primera letra de todas las palabras sería mayúscula (mayúscula), por lo que se vería así:

2012 Junio ​​3, Domingo

No encontré ninguna respuesta en internet, ¿alguien tiene una idea? :)

+4

Te das cuenta de que los meses y los días de la semana no están escritos en mayúscula en español, ¿no? –

+1

Es el mismo problema en muchos otros idiomas, como lituano, griego, ruso y etc. – user1384668

Respuesta

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

Dado que 'strftime()' proporciona una cadena de fecha localizada, y algunas localizaciones usan conjuntos de caracteres de múltiples bytes, sería conveniente tener esto en cuenta. Consulte http://stackoverflow.com/questions/2517947/ucfirst-function-for-multibyte-character-encodings para ver un ejemplo de cómo escribir una función 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

Trate labrar la salida como esta:

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

o

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

De esta manera usted puede elegir qué palabras para capitalizar. En su caso, ucwords funciona, supongo, ya que quiere que todas sus palabras comiencen con mayúsculas.

Cuestiones relacionadas