PHP - comparar fechas

 
Vista:

comparar fechas

Publicado por noe velazquez (131 intervenciones) el 06/05/2018 00:15:28
Hola Foro !!!

esperando me puedan ayudar. es con lo siguiente.

tengo una tabla con 2 campos tipo DATE (fec_inicio y fec_final) como puedo compararlas ? el usuario en un formulario va introducir una fecha y dicha fecha no debe estar dentro del rango de fec_inicio y fec_final

ejemplo:

fec_inicio=2018-12-01
fec_final=2018-12-31

fecha_usuario= 2018-12-15

como la fecha del usuario esta dentro del rango quiero mandar un mensaje diciendo fecha invalida

como puedo hacer esto ?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.084
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

comparar fechas

Publicado por xve (6933 intervenciones) el 06/05/2018 09:13:28
Hola Noe, pero esto que lo quieres hacer en una consulta SQL o desde PHP?

Si utilizas MySQL, puedes utilizar BETWEEN
Desde PHP puede hacer:
1
2
3
4
5
6
7
8
9
10
<?php
$fec_inicio="2018-12-01";
$fec_final="2018-12-31";
$fecha_usuario="2018-12-15";
 
if($fecha_usuario>$fec_inicio && $fecha_usuario<$fec_final)
{
    echo "OK";
}
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

comparar fechas

Publicado por noe velazquez (131 intervenciones) el 06/05/2018 15:19:15
Hola Xve gracias por reponder !!!

estuve probando y al parecer es el formato de la fecha por que lo busco por el numero de empleado y si lo encuentra pero cuando comparo las fecha no hace lo indicado

olvide mencionar que el tipo del input del formulario es de tipo DATE
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.084
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

comparar fechas

Publicado por xve (6933 intervenciones) el 06/05/2018 20:57:33
Hola Noe, nos puedes mostrar como lo estas haciendo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

comparar fechas

Publicado por noe velazquez (131 intervenciones) el 07/05/2018 02:45:54
Hola Xve !!!

este es el script donde se captura la fecha de inicio y fecha final

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?
//ob_start();
require ("conecta.php");
$pnum = $_POST['num'];
$lista = "Select * From plantilla Where num_emp = $pnum";
$resultado = mysqli_query($conectado,$lista);
$dato =  mysqli_fetch_assoc($resultado);
$linea = mysqli_num_rows($resultado);
if ($linea > 0 ){
	?>
	<!DOCTYPE html>
	<html lang="en">
	<head>
		<title>Altas Notas Buenas</title>
		<meta charset="UTF-8">
		<link rel="stylesheet" href="css/altanb1.css">
	</head>
	<script language="javascript">
      function pantalla_ant(){
        window.location='altanb1.php';
      }
      function menu_ant(){
        window.location='menu_notbue.php';
      }
    </script>
	<body>
		<form name="f" action="altanb3.php" method="POST">
		<div id="todo">
		   <h1>Direccion General de Administracion</h1>
		   <h2>Direccion de Recursos Humanos</h2>
		   <h3>U. D. de Movimientos de Personal</h3>
		    <br>
		    <hr />
		    <br>
		   	<div id="izq">
		   		<p>Num. Empleado</p>
		   		<input type="number" name="num1" id="uno" value="<? echo $dato[num_emp]; ?>"> <!--disabled -->
		   		<p>Paterno</p>
	        	<input type="text" name="pat1" id="dos" value="<? echo $dato['ap_paterno']; ?>">
	        	<p>Materno</p>
	        	<input type="text" name="mat1" id="dos" value="<? echo $dato['ap_materno']; ?>">
	        	<p>Nombre</p>
	        	<input type="text" name="nom1" id="dos" value="<? echo $dato['nombre']; ?>">
	        	<p>Signo</p>
	        	<input type="text" name="sig1" id="uno" value="+">
	        	<p>Periodo</p>
	        	<input type="date" name="rf1" id="tres" tabindex="1" autofocus required>
	        	<input type="date" name="rf2" id="tres" tabindex="2" required>
		   	</div>
		   	<div id="der">
		   		<p>Codigo Puesto</p>
				<input type="text" name="cod1" id="uno" value="<? echo $dato['cod_puesto']; ?>" >
		   		<p>Nivel</p>
	        	<input type="number" name="niv1" id="uno" value="<? echo $dato[niv_puesto]; ?>" >
	        	<p>Plaza</p>
	        	<input type="text" name="pla1" id="uno" value="<? echo $dato['plaza']; ?>" >
		   		<p>Descripcion</p>
	        	<input type="text" name="des1" id="uno" value="ASISTENCIA" >
	        	<p>Clasificador</p>
	        	<input type="number" name="cla1" id="uno" tabindex="3" required>
	        	<input type="hidden" name="tnn1" value="<? echo $dato[tn]; ?>">
		   	</div>
		</div>
		<div id="centra">
		<input type="submit" name="boton" value="Registra Tarjeta" class="btn btn-ver" tabindex="4">
		<input type="button" name="boton" value="Nuevo Registro" class="btn btn-ama" onclick="pantalla_ant()">
		<input type="button" name="boton" value="Menu Principal" class="btn btn-roj" onclick="menu_ant()">
		</div>
		</form>
	</body>
	</html>
 	<?
}else{
  echo "<script type='text/javascript'>
       alert('El numero de Empleado ".$pnum." que digito no existe');
       window.location='altanb1.php';
       </script>" ;
}
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

comparar fechas

Publicado por noe velazquez (131 intervenciones) el 07/05/2018 02:52:32
este es donde comparo.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
$entra_new = 0;
require ("conecta.php");
 
$pnum = $_POST[num1];
$unof = $_POST[rf1];
echo 'fecha del usuario '.$unof;
echo "<br/>\n";
 
$lisfec1 = "Select * From nuevo Where numemp = $pnum";
$resul1 = mysqli_query($conectado,$lisfec1);
$dfecha1 =  mysqli_fetch_assoc($resul1);
$resfec1 = $dfecha1['funo'] ;
 
$lisfec2 = "Select * From nuevo Where numemp = $pnum";
$resul2 = mysqli_query($conectado,$lisfec2);
$dfecha2 =  mysqli_fetch_assoc($resul2);
$resfec2 = $dfecha2['fdos'] ;
echo "<br/>\n";
echo 'fecha uno '.$resfec1;
echo "<br/>\n";
echo 'fecha dos '.$resfec2;
 
if ($resfec1>$unof && $resfec2<$unof){
    echo "alguna de las tarjetas ya se encuantra registrada";
}else{
    echo "fecha fuera de rango";
    echo "<br/>\n";
    $entra_new = 1;
}
 
$feclis = "Select numemp,funo,fdos From nuevo Where numemp=$pnum and (funo>=$unof and fdos<=$unof";
$resul1 = mysqli_query($conectado,$feclis);
$dato =  mysqli_fetch_assoc($resul1);
$linea = mysqli_num_rows($resul1);
if ($linea > 0){
    echo "<br/>\n";
    echo "dentro del rango";
}else{
    echo "<br/>\n";
    echo "fuera del rango";
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.084
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

comparar fechas

Publicado por xve (6933 intervenciones) el 07/05/2018 08:35:53
Hola Noe, aquí te falta cerrar el parentesis o eliminar la abertura, ya que no hace falta:
1
$feclis = "Select numemp,funo,fdos From nuevo Where numemp=$pnum and (funo>=$unof and fdos<=$unof";

Esta consulta, te tiene que dar error!!

Despues de ejecutar, revisa que no devuelva false...
1
2
3
4
5
6
7
$resul1 = mysqli_query($conectado,$feclis);
if($result1)
{
   ....
}else{
   ....
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

comparar fechas

Publicado por noe velazquez (131 intervenciones) el 07/05/2018 17:41:04
buenos días Xve

asi quedo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$con1 = "Select * From nuevo Where numemp = $pnum";
$res1 = mysqli_query($conectado,$con1);
$dat1 =  mysqli_fetch_assoc($res1);
$fff1 = $dat1['funo'] ;
 
$con2 = "Select * From nuevo Where numemp = $pnum";
$res2 = mysqli_query($conectado,$con2);
$dat2 =  mysqli_fetch_assoc($res2);
$fff2 = $dat2['fdos'] ;
 
if (strtotime($unof) >= strtotime($fff1) ||  strtotime($unof) <= strtotime($fff2)) {
    echo "<script type='text/javascript'>
        alert('Algunas de las tarjetas que desea capturas ya estan registradas');
        window.location='altanb1.php';
        </script>";
}else{
    $entra_new = 1;
}

perdi mucho tiempo tratando de yo solucionarlo.
te agradezco que compartas tus conocimientos
MUCHAS GRACIAS......
un abrazo desde Mexico.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar