Foros del Web » Programando para Internet » PHP »

manejando fechas con preg_match()

Estas en el tema de manejando fechas con preg_match() en el foro de PHP en Foros del Web. Quisiera que por favor alguien me explique detalladamente que significa cada que que compone a estas lineas de codigo, las / \ y todas las ...
  #1 (permalink)  
Antiguo 30/05/2012, 18:55
 
Fecha de Ingreso: septiembre-2008
Mensajes: 24
Antigüedad: 15 años, 7 meses
Puntos: 0
Información manejando fechas con preg_match()

Quisiera que por favor alguien me explique detalladamente que significa cada que que compone a estas lineas de codigo, las / \ y todas las cosas que tiene:

if (preg_match("/[0-9]{1,2}\/[0-9]{1,2}\/([0-9][0-9]){1,2}/",$fecha1))

list($dia1,$mes1,$año1)=split("/",$fecha1);
  #2 (permalink)  
Antiguo 30/05/2012, 18:57
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: manejando fechas con preg_match()

buenas puedes buscar un poco, fijate acá http://www.forosdelweb.com/f18/aport...s-pcre-646110/, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 30/05/2012, 19:01
 
Fecha de Ingreso: septiembre-2008
Mensajes: 24
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: manejando fechas con preg_match()

Bueno este es el codigo completo, muestra la diferencia entre una fecha dada a futuro con la fecha atual que obtiene del sistema

<?php
function resta_fechas($fecha1,$fecha2)

{

if (preg_match("/[0-9]{1,2}\/[0-9]{1,2}\/([0-9][0-9]){1,2}/",$fecha1))

list($dia1,$mes1,$año1)=split("/",$fecha1);

if (preg_match("/[0-9]{1,2}-[0-9]{1,2}-([0-9][0-9]){1,2}/",$fecha1))

list($dia1,$mes1,$año1)=split("-",$fecha1);
if (preg_match("/[0-9]{1,2}\/[0-9]{1,2}\/([0-9][0-9]){1,2}/",$fecha2))

list($dia2,$mes2,$año2)=split("/",$fecha2);

if (preg_match("/[0-9]{1,2}-[0-9]{1,2}-([0-9][0-9]){1,2}/",$fecha2))

list($dia2,$mes2,$año2)=split("-",$fecha2);
$dif = mktime(0,0,0,$mes1,$dia1,$año1) - mktime(0,0,0,$mes2,$dia2,$año2);

$ndias=floor($dif/(24*60*60));

return($ndias);

}
echo '<head>

<title>'.$_SERVER[PHP_SELF].'</title>

</head>

<html>

<body>';

$fechaVenc="30-5-2014";
$numdias=resta_fechas($fechaVenc, date("d/m/Y"));
$numAnios = $numdias/365;
echo "$numdias <br>";
echo "<a href=$_SERVER[PHP_SELF]>Recargar la Página</a>";
echo '</body>

</html>';
?>
  #4 (permalink)  
Antiguo 30/05/2012, 19:37
 
Fecha de Ingreso: julio-2008
Ubicación: Córdoba, Argentina
Mensajes: 266
Antigüedad: 15 años, 9 meses
Puntos: 26
Respuesta: manejando fechas con preg_match()

Hola.

A mí algo que me sirvió mucho es esto: http://www.regextester.com/pregsyntax.html
Un ejemplo sería el siguiente:
Código PHP:
function validar_fecha($fecha){
    return 
preg_match('/^([0-9]{1,2})[\/.-]([0-9]{1,2})[\/.-]([0-9]{4})$/'$fecha);

A esta función le pasamos como parámetro una fecha para validar si está en un formato válido para nosotros (en este caso serían válidos los formatos DD/MM/AAAA, DD.MM.AAA y DD-MM-AAAA).
La regla comienza con /^ y termina con $/. En este ejemplo se valida que haya uno o dos números ({1-2}) que sean del 0 al 9 ([0-9]) que representan el día; seguidos de una barra (/, que está escapada con otra barra invertida \) ó un punto (.) ó un guón (-), seguido nuevamente por uno o dos números que representan el mes; luego otra barra, punto o guión; y, finalmente un número ([0-9]) de cuatro cifras ({4}) que es el año.
Hay que tener en cuenta que esto sólo validaría el formato de la fecha, pero no valida que la fecha sea correcta (por ejemplo: 31 de febrero de 2012 pasaría esta validación de formato pero no es una fecha válida).

Un saludo.

Última edición por RabidFish; 30/05/2012 a las 19:49
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:36.