PHP - script contador

 
Vista:

script contador

Publicado por camila (10 intervenciones) el 22/11/2019 09:00:45
hola buenos dias tardes o noches

tengo una consulta presento un DB con unas fechas guardadas almomento de registrar las fecha se guardan en la DB y luegos las muestro en pantalla del usuario,precento un l script con JS que realiza una cuenta regresiva de la fecha guardada con la fecha actual para validar cuanto tiempo restante queda para esa fecha , lo que no logra es que al momentop de actualizar la pagina el SCRIPT solo funciona en la primera fecha mas no en el resto ejemplo

2019/11/22 - 2019/11/25 -------> cuenta regresiva de cuanto falta funcionado ok
2019/11/23 - 2019/11/25 -------> cuenta regresiva de cuanto falta funcionado ko
2019/11/24 - 2019/11/25 -------> cuenta regresiva de cuanto falta funcionado ko

no imprime la informacion solo se ejecuta el script en la primera mas no en el reto como puede hacer que ese script se ejecute en todos al mismo tiempo
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

script contador

Publicado por Joel (1269 intervenciones) el 22/11/2019 15:05:56
Hola Camila, no entiendo muy bien la problematica... nos puedes mostrar tu código o algún pantallazo?
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

script contador

Publicado por camila (10 intervenciones) el 24/11/2019 13:01:15
dale mira tengo una BD con

created_at expire_date
2019-11-14 17:21:03 2019-12-14 17:21:03
2019-11-14 18:03:02 2019-12-14 18:03:0
2019-11-14 17:21:03 2019-11-28 17:21:03

almomento de consultar y mostar en la pantalla

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
<?php
$sumCD = 0; $sumER = 0; $sumSP = 0;
foreach($user as $key => $plans):
$sumER += $plans->earning_rate; $sumSP += $plans->speed; $sumCD += $plans->point_per_day;
$duration = $plans->duration;
$now = date_create('now');
$end = date_add(date_create($plans->created_at),date_interval_create_from_date_string($duration.' days'));
$left = date_diff($now,$end);
$leftDays = $left->days.'d '.$left->h.'h '.$left->i. 'm '.$left->s. 's';
?>
<div class="mineria-run">
	<div class="mina-run">
		 <div class="for-run">
			<div class="for-run-in">
				<img src="img/plans/<?php echo $imagen;?>"style="width:140px; padding-top: 20px; padding-bottom: 20px;">
				<div class="con-run">
					<span class="ti-run t-run"><?php echo $plans->version; ?></span>
					    <h3 class="t-run">FECHA: <?php echo $plans->created_at; ?></h3>
					    <h3 class="t-run" >ESTADO:<span id='tiempo'><?php echo $leftDays;?></span></h3>
		 		</div>
		 	</div>
		</div>
	</div>
</div>
<?php endforeach;?>

me mostrara en lan talla algo asi

FECHA: 2019-11-14 17:21:03 |
ESTADO:4d 5h 28min 16seg |
|
|
FECHA: 2019-11-14 18:03:02 |
ESTADO:20d 6h 20m 43s | -------------------------------esto esta mostrando en pantalla por PHP
|
|
FECHA: 2019-11-14 17:21:03 |
ESTADO:5d 5h 38m 44s |

para que se visualizara un poco mejor realice un script para que se viera la cuenta regresiva


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<script type="text/javascript">
var countDownDate = <?php echo strtotime($plans->expire_date)?> * 1000;
var now = <?php echo time() ?> * 1000;
var x = setInterval(function() {
    now = now + 1000;
    var distance  = countDownDate - now;
    var days = Math.floor(distance / (1000 * 60 * 60 * 24));
    var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
    var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
    var seconds =('0' + Math.floor(distance % (1000 * 60)) / 1000).slice(-2);
    $("#tiempo").html(days + "d " + hours + "h " + minutes + "min " + seconds + "seg" );
    if (distance <= 1) {
        clearInterval(x);
    }
 
}, 1000);</script>


al momento que lo ejecuto o actualizo la web solo se esta ejecutando el script en la primera consulta de fecha el resto se queda quitas y si actualizo la web se ve como se esta resucioendo el tiempo pero por parte del php mas no con el js como en el primero que podria ocurrir o que esta mal
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

script contador

Publicado por joel (1269 intervenciones) el 25/11/2019 08:32:36
Hola Camila, no llego a entender muy bien lo que te pasa... si quietas el javascript carga correctamente el código php?

Ten en cuenta que el PHP se ejecuta en el servidor y el javascript en el navegador...
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

script contador

Publicado por Camila (10 intervenciones) el 25/11/2019 09:42:41
Hola mira lo que quiero hacer es que se que el contador que resta el tiempo que me hace falta lo cuenta por el lado del servidor con php hay no hay problema ahora lo que me hace falta es que sea visible por el lado del cliente lo hago un poco más amigable y con JS pero no que no e podido es que con el js se muestre en todas las fechas solo se muestra en la primera más. No en el resto de ella como podría hacer
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 José Manuel
Val: 150
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

script contador

Publicado por José Manuel (62 intervenciones) el 02/12/2019 10:54:25
Hola Camila:

Me temo que Joel tiene razón, es un poco lío. De todas formas y a riesgo de equivocarme, creo que estás controlando desde el JavaScript una sola fecha y por ello solamente trabaja con ella. O al menos es lo que me parece entender por el código que indicas:

1
línea 2: var countDownDate = <?php echo strtotime($plans->expire_date)?> * 1000;

Si es como digo, en teoría debes hacer que el JavaScript controle todas las fechas que necesitas mostrar regresivamente. Cuéntanos. Un saludo,
https://obelearningservices.com/blog/
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

script contador

Publicado por Camila (10 intervenciones) el 05/12/2019 09:11:13
Hola dale comprendo lo que me dices si fuera a si que tendría que ser todas las fechas como se tendría que hacer

Por que si ejecuto la linea 2 en consola a si console.log (countDownDate);

Me muestra las fechas sin problema en milisegundos y serea restarle la fecha actual y el resto para pasarlo a d m s

Como se muestra en la linea 4 - 10

Hay es cuando solo toma una sola fecha más no el resto si es como dices como seria para que tomara todas las fechas y no solo una
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 José Manuel
Val: 150
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

script contador

Publicado por José Manuel (62 intervenciones) el 09/12/2019 18:05:56
Hola Camila:

¿Cómo se une el código JavaScript que indicas, respecto al PHP?¿Puedes usar la funcionalidad de [Adjuntar Archivos] del foro para hacernos una imagen más clara? Así podría indicarte mejor. Un saludo,

https://obelearningservices.com/blog/
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