PHP - CALCULAR DIAS

 
Vista:
Imágen de perfil de Fred
Val: 41
Ha aumentado su posición en 6 puestos en PHP (en relación al último mes)
Gráfica de PHP

CALCULAR DIAS

Publicado por Fred (23 intervenciones) el 02/04/2021 17:53:39
Buenas

Tengo el siguiente problema, quiero calcular los días que hay entre una fecha y otra, resulta que si ingreso los siguientes datos:

2021-03-01 al 2021-03-31

Como resultado obtendría: 31 días, pero me arroja como resultado: 2 días.

He notado que solo calcula aquellos meses que cuentan con 28 días y los meses que tienen 31 días no realiza el calculo correctamente.

Mi pregunta es: Por qué hace eso?

Anexo el código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
if(isset($_POST["calculo"])){
 
$fecha1=$_POST["fecha1"];
$fecha2=$_POST["fecha2"];
 
$fechainicial = new DateTime($fecha1);
//fecha inicial
$fechaactual = new DateTime($fecha2);
//fecha de cierre
$diferencia = $fechainicial->diff($fechaactual);
 
?>
<input type="hidden" name="dias" id="dias" value="<?php echo $diferencia->format('%d');?>">
 
<?php
}
?>
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 joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

CALCULAR DIAS

Publicado por joel (1269 intervenciones) el 02/04/2021 20:28:22
Hola Fred, yo he probado tu código poniendo las fechas manualmente, y me ha devuelto "+30 days"

1
2
3
4
5
6
7
8
9
<?php
$fecha1="2021-03-01";
$fecha2="2021-03-31";
 
$fechainicial = new DateTime($fecha1);
$fechaactual = new DateTime($fecha2);
$diferencia = $fechainicial->diff($fechaactual);
 
echo $diferencia->format('%R%a days');
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Fred
Val: 41
Ha aumentado su posición en 6 puestos en PHP (en relación al último mes)
Gráfica de PHP

CALCULAR DIAS

Publicado por Fred (23 intervenciones) el 02/04/2021 20:45:40
Gracias Joel por su respuesta. Le comento que sigo con el problema, lo que sucede que hago la consulta de fechas mediante el calendario y a través de un botón es como le indico que me de el resultado, le comparto la otra parte del código:

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
<!DOCTYPE html>
<html>
<head>
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<link rel="shortcut icon" href="img/favicon.ico" />
  <title>Centro de Control</title>
</head>
<body>
 
<div class="container">
 
    <form class="well form-horizontal" action="" method="post"  id="contact_form">
 
<fieldset>
 
<!-- Form Name -->
 
<center><h4>Consulta los días </h4></center>
 
         <div class="form-row">
            <div class="form-group col-md-4">
                <label for="Cedula">Fecha inicial:</label>
                <input type="date" name="fecha1" id="moda1" class="form-control" required value="<?php if(isset($_POST["fecha1"])){ echo $_POST["fecha1"];}?>">
            </div>
 
 
          <div class="form-row">
            <div class="form-group col-md-4">
                <label for="Cedula">Fecha actual:</label>
                <input type="date" name="fecha2" id="moda2" class="form-control" required value="<?php if(isset($_POST["fecha2"])){ echo $_POST["fecha2"];}?>">
          </div>
 
 
 <br>
<center>
<legend>
<input name="calculo" type="hidden" value="v">
<input class="btn btn-primary" type="hidden" value="Calcular">
 
</legend>
</center>
</form>
 
<?php include 'calculador1.php'?>
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 joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

CALCULAR DIAS

Publicado por joel (1269 intervenciones) el 03/04/2021 08:40:16
Hola Fred... pero ahí te falta el botón submit, no?
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 Fred
Val: 41
Ha aumentado su posición en 6 puestos en PHP (en relación al último mes)
Gráfica de PHP

CALCULAR DIAS

Publicado por Fred (23 intervenciones) el 04/04/2021 08:15:56
Si una disculpa, aquí lo asigno:

1
2
3
4
<legend>
<input name="consultar" type="hidden" value="v">
<input class="btn btn-warning" type="submit" value="consultar">
</legend>
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 joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

CALCULAR DIAS

Publicado por joel (1269 intervenciones) el 04/04/2021 13:06:24
Hola Fred, yo lo he probado con el submit y funciona perfectamente!!! me ha dicho los 30 días!!!

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
<!DOCTYPE html>
<html>
<head>
<link rel="shortcut icon" href="img/favicon.ico" />
  <title>Centro de Control</title>
</head>
<body>
 
<div class="container">
 
    <form class="well form-horizontal" action="" method="post"  id="contact_form">
 
<fieldset>
 
<!-- Form Name -->
 
<center><h4>Consulta los días </h4></center>
 
         <div class="form-row">
            <div class="form-group col-md-4">
                <label for="Cedula">Fecha inicial:</label>
                <input type="date" name="fecha1" id="moda1" class="form-control" required value="<?php if(isset($_POST["fecha1"])){ echo $_POST["fecha1"];}?>">
            </div>
 
 
          <div class="form-row">
            <div class="form-group col-md-4">
                <label for="Cedula">Fecha actual:</label>
                <input type="date" name="fecha2" id="moda2" class="form-control" required value="<?php if(isset($_POST["fecha2"])){ echo $_POST["fecha2"];}?>">
          </div>
 
 
 <br>
<center>
<legend>
<input name="calculo" type="hidden" value="v">
<input class="btn btn-primary" type="submit" value="Calcular">
 
</legend>
</center>
</form>
 
<?php
$fecha1="2021-03-01";
$fecha2="2021-03-31";
$fecha1=$_POST["fecha1"];
$fecha2=$_POST["fecha2"];
 
$fechainicial = new DateTime($fecha1);
$fechaactual = new DateTime($fecha2);
$diferencia = $fechainicial->diff($fechaactual);
 
echo $diferencia->format('%R%a days');
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