Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Dimitar Stefanov en 10 de Mayo 2016, 19:02

Título: PHP Mostrar fecha en español con formato, setlocale(), strftime() CU00831B
Publicado por: Dimitar Stefanov en 10 de Mayo 2016, 19:02
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.
Título: Re:CU00831B Mostrar fecha en español en PHP
Publicado por: pedro,, 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
Título: Re:CU00831B Mostrar fecha en español, setlocale(), strftime(). PHP
Publicado por: Dimitar Stefanov 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í :)
Título: Re:CU00831B Mostrar fecha en español, setlocale(), strftime(). PHP
Publicado por: pedro,, 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.
Título: Re:CU00831B Mostrar fecha en español, setlocale(), strftime(). PHP
Publicado por: Dimitar Stefanov 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 :)