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
-
Buenas tardes. Expongo una posible solución de los ejercicios de la entrega CU00831B del curso PHP desde cero.
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”.
<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);
?>
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.
<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.
-
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
-
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í :)
-
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.
-
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 :)