Autor Tema: PHP Mostrar fecha en español con formato, setlocale(), strftime() CU00831B  (Leído 3939 veces)

Dimitar Stefanov

  • Experto
  • *****
  • Mensajes: 598
    • Ver Perfil
Buenas tardes. Expongo una posible solución de los ejercicios de la entrega CU00831B del curso PHP desde cero.

Citar
EJERCICIO 1

Crea una función php de nombre mostrarDiasMes que reciba como argumentos un mes (valor numérico de 1 a 12) y un año (valor numérico de 4 dígitos) y muestre por pantalla el texto “extendido” correspondiente a la fecha en idioma español. Por ejemplo mostrarDiasMes(1, 2089) deberá devolver: 1 de enero de 2089, 2 de enero de 2089, 3 de enero de 2089, 4 de enero de 2089… hasta 31 de enero de 2089”.

Código: [Seleccionar]
<meta charset="utf-8" />
<?php 

function mostrarDiasMes($mes$anyo){
$miFecha gmmktime(12,0,0,$mes,15,$anyo);
setlocale(LC_TIME"es_ES.UTF-8");
//date_default_timezone_set("Europe/Madrir");
echo strftime("%d de %B de %Y %H:%M"$miFecha);
}

mostrarDiasMes(6,2018);

?>

Citar
EJERCICIO 2

Repite el ejercicio anterior, pero en esta ocasión mostrando la fecha en formato de hora tal y como se usa en Holanda y en idioma holandés.

Código: [Seleccionar]
<meta charset="utf-8" />
<?php 

function mostrarDiasMes($mes$anyo){
setlocale(LC_TIME"nl_NL.UTF-8");
date_default_timezone_set("Europe/Amsterdam");
$miFecha gmmktime(12,0,0,$mes,15,$anyo);
echo strftime("%d de %B de %Y %H:%M"$miFecha);
}

mostrarDiasMes(6,2018);

?>

Cuál es la diferencia entre la función nativa "date()" y "strftime()" ?

Por lo que he entendido de esta entrega del curso, el método "setlocale()" sóo sirve para cambiar la lengua en la que mostraremos la fecha y la hora, en cambio, el método "setlocale()" ajusta la hora local. Lo tengo bien entendido?

Gracias.
« Última modificación: 15 de Mayo 2016, 21:51 por César Krall »

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:CU00831B Mostrar fecha en español en PHP
« Respuesta #1 en: 12 de Mayo 2016, 23:38 »
Buenas dimiste.

El ejercicio bien.

En cuanto a la diferencia entre "date()" y "strftime()", principalmente diría que por mucho que usemos setlocale() para cambiar la configuración regional que debe ser usada, si intentas mostrar con date() el mes o el día de la semana en texto, sólo lo mostrará en inglés, sin embargo con strftime() si se conseguirá que se muestre en el idioma que le indiquemos con setlocale(), por lo demás, son funciones muy parecidas.

En cuanto a tu segunda duda, no entiendo lo que quieres preguntar. :o


Saludos. ;D
« Última modificación: 12 de Mayo 2016, 23:39 por pedro,, »

Dimitar Stefanov

  • Experto
  • *****
  • Mensajes: 598
    • Ver Perfil
Re:CU00831B Mostrar fecha en español, setlocale(), strftime(). PHP
« Respuesta #2 en: 13 de Mayo 2016, 10:43 »
Buenos días, Pedro.

Gracias por corregir otro ejercicio más. Sobre la segunda pregunta, cómo la vas a entender si ni yo la entiendo :) jejejeje. Es que me he expresado fatal. La he escrito con errores y por prisa o lo que fuera no la he leido antes de enviarla. Pido perdón. Aquí te dejo bien formulada mi duda:

Por lo que he entendido de esta entrega del curso, el método "setlocale()" sólo sirve para cambiar la lengua en la que mostraremos la fecha y la hora, en cambio, el método "date_default_timezone_set()" ajusta la hora local. Lo tengo bien entendido?

Ahora sí :)

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:CU00831B Mostrar fecha en español, setlocale(), strftime(). PHP
« Respuesta #3 en: 13 de Mayo 2016, 18:26 »
La función setlocale() sirve para indicar la configuración regional que queremos usar, no solo para la fecha y la hora, también afecta a separadores numéricos, sistema monetario, etc.

La función date_default_timezone_set(),  establece una zona horaria específica como configuración local para el servidor, que usarán las funciones de fecha y hora cuando las usemos.

Si tienes dudas sobre el tema, vuelve a darle un repaso.

https://www.aprenderaprogramar.es/index.php?option=com_content&view=article&id=857:mostrar-fecha-en-espanol-php-setlocale-strftime-formato-datedefault-timezone-set-ejemplos-cu00831b&catid=70:tutorial-basico-programador-web-php-desde-cero&Itemid=193

Saludos.

Dimitar Stefanov

  • Experto
  • *****
  • Mensajes: 598
    • Ver Perfil
Re:CU00831B Mostrar fecha en español, setlocale(), strftime(). PHP
« Respuesta #4 en: 14 de Mayo 2016, 13:47 »
Gracias por contestar, Pedro.

Echaré un vistazo a la lección otra vez, aunque con tu explicación me ha quedado bastante claro.

Un saludo :)

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".