duda con librerias de apache

Iniciado por Drewermerc, 22 Julio 2014, 19:10 PM

0 Miembros y 1 Visitante están viendo este tema.

Drewermerc

Hola a todos.
Bueno acabo de tener un problema el cual era que mi servidor apache no ejecutaba php y despues de buscar encontré era pro que no esta instalada la libreria de apache para php la instale y se soluciono y mi preguntas es como saber cuando se trata de un problema de librerias y como puedo saber si las tengo instaladas, también cuales son la libreria indispensable o básicas para que el servidor corra bien.

Tambien quería ver si me daban una idea de como hacer lo siguiente:
lo que quiero hacer es tomas un rango de fecha con horas minutos segundo y dias por ejemplo de 20/marzo/2014 a 22/marzo/2014 con la hora actual y que tengas un contador que me diga cuantas hora minuto segundo y días han pasado desde el 20 de marzo pero como van avanzando los segundos, minutos, días y horas se tiene que ir incrementando  el contador.
bueno espero que me haya entendido y me pueda ayudar.
Saludos.
Drewermerc.

MinusFour

Si no necesitas nada mas que el apache por ahora así dejalo, muchos de los modulos indispensables vienen en la instalación por default de apache. Algunos modulos van a incrementar la carga en RAM de tus procesos, por lo que no es bueno instalar modulos así nada más.

En cuanto a como realizar lo de la fecha puedes hacerlo directamente desde javascript (basados en el reloj de tu sistema) o puedes conseguir una respuesta de un servidor (el reloj del servidor) y animarla con javascript.

Drewermerc

Hola MinusFour.
gracias por responder bueno entonces como valla utilizando o necesitando los modulos los instalo.

bueno con respecto al problemas es que no quiero hacer un reloj solo un simple contador por ejemplo:
dias  2
horas 48
minutos 2880
segundos 172800

que me diga esos datos de del rango de las fecha que le diga en este caso 20/julio/2014 22/julio/2014
pero como el reloj del servidor sigue avanzando quiero que valla incrementando los contadores.

MinusFour

Cita de: Drewermerc en 22 Julio 2014, 19:35 PMque me diga esos datos de del rango de las fecha que le diga en este caso 20/julio/2014 22/julio/2014
pero como el reloj del servidor sigue avanzando quiero que valla incrementando los contadores.


Hay algo raro aquí, si estás haciendo una resta entre 2 fechas, el reloj no debería ir aumentando. Pero por ejemplo para contar los segundos/horas/dias desde una fecha en especifico hasta "ahora" y por "ahora" me refiero al presente, entonces si puedes mostrar un contador.

Drewermerc

Hola bueno mira lo que quisiera hacer algo asi como tiempo unix que da los segundos desde el 1 de enero de 1970 pero en lugar de que inicie desde esa fecha hacerla desde por ejemplo 20/julio/2014 y me valla mostrando los segundos, minutos, horas,  dias, mes, año  no se si ya quedo un poco mas claro que quisiera hacer.

MinusFour

Hay varias consideraciones, al menos para una persona quisquillosa como yo. Si queremos usar el reloj del servidor, tienes que medir la respuesta de tiempo del servidor y sumarla a la fecha que te trae el servidor.

Hay varias formas de hacer la resta, pero yo creo que la mejor forma es usar DateTime:diff(), y el código es así de sencillo:

Código (php) [Seleccionar]

<?php
if(!isset($_GET["time"])){
die();
}

$dateTime1 = new DateTime($_GET["time"]);
$dateTime2 = new DateTime(date("m/d/Y H:i:s"time()));
$dateInterval $dateTime1->diff($dateTime2);

$diasTotales $dateInterval->days;
$anos $dateInterval->y;
$meses $dateInterval->m;
$dias $dateInterval->d;
$horas $dateInterval->h;
$minutos $dateInterval->i;
$segundos $dateInterval->s;

echo 
"{ \"diasTotales\" : $diasTotales, \"anos\" : $anos, \"meses\" : $meses, \"dias\" : $dias, \"horas\" : $horas, \"minutos\" : $minutos, \"segundos\" : $segundos }";

?>


De ahí puedes sacar la diferencia de las fechas. Para mostrar el contador, necesitas animarlo y para eso necesitas usar javascript. Te recomendaría que usaras AJAX para enviarle la fecha al servidor y que este te conteste con la diferencia al momento. Puedes usar el objeto nativo de los navegadores XmlHttpRequest o la implementación de jQuery.

Un ejemplo con jQuery:

Código (HTML4Strict) [Seleccionar]

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script src="http://code.jquery.com/jquery-2.1.1.min.js"></script>
<script type="text/javascript">
var contador;
var intervalControl;

function load() {
   var prevTime = (new Date()).getTime();
   var dia = $("#dateDay").val();
   var mes = $("#dateMonth").val();
   var ano = $("#dateYear").val();
   var fecha = "time=" + mes + "/" + dia + "/" + ano;
   $.ajax({
       type: "GET",
       url: "./time.php",
       dataType: "json",
       data: fecha,
       success: function (response) {
           var newTime = (new Date()).getTime();
           var diffTime = newTime - prevTime;
           var secs = Math.round(diffTime / 3600);
           response.segundos = response.segundos + secs;
           contador = { diasTotales: response.diasTotales,
anos: response.anos,
meses: response.meses,
dias: response.dias,
horas: response.horas,
minutos: response.minutos,
segundos: response.segundos };
       },
error: function(jqxhr, textStatus, errorThrown){
console.log(textStatus, errorThrown);
},
   });

   intervalControl = setInterval(function () {
       var showText = "Dias Totales: " + contador.diasTotales + "<br />" + "Años: " + contador.anos + "<br />" + "Meses: " + contador.meses + "<br />" + "Dias: " + contador.dias + "<br />" + "Horas: " + contador.horas + "<br />" + "Minutos: " + contador.minutos + "<br />" + "Segundos: " + contador.segundos + "<br />";
$("#answer").html(showText);
contador.segundos = contador.segundos + 1;
       if (contador.segundos == 60) {
           contador.segundos = 0;
           contador.minutos = contador.minutos + 1;
           if (contador.minutos == 60) {
               contador.minutos = 0;
               contador.horas = contador.horas + 1;
               if (contador.horas == 24) {
                   contador.horas = 0;
                   contador.dias = contador.dias + 1;
               }
           }
       }

   }, 1000);
}
</script>
</head>
<body>
<center>
       <h3>Calculate how many seconds since: </h2>
       <input style="width: 30px;" maxlength="2" id="dateDay" type="number" />
       <input style="width: 30px;" maxlength="2" id="dateMonth" type="number" />
       <input style="width: 50px;" maxlength="4" id="dateYear" type="number" />
       <div id="answer"></div>
       <input type="button" value="Calcular" onclick="load()" />
   </center>
<body>
</html>

Drewermerc

Hola MinusFour.

gracias por el código aun que aun no manejo ajax pero si entendí varias de las cosas ya que es javascript y si lo manejo un poco, aun que no se si es una variable predefinida en ajax response eso si no lo entendí bien.

y bueno una cosa intente encontrar por que no da la diferencia de las horas  y minutos solo poner la hora actual no se si me puedas ayudar o si quieres dime en que parte me tengo que enfocar del código para poder resolverlo yo.

bueno muchas gracias de nuevo por el código.
Saludos.
Drewermerc.

engel lex

#7
apegandome al tema inicial del post como una recomendacion... no es bueno instalar apache solo desde 0 y montar todo a menos que seas un experto en el tema... es preferible instalar xampp, wampp, lampp (depende de tu sistema operativo) que trae todo lo necesario para montar un server local de pruebas, apache, mysql, php, y las librerias necesarias de estos para experimentar


---

agrego...

es bueno de php buscar a parte la librería xdebug ya que esta es la que habilita la posibilidad de hacer debug al php, si tienes un editor como el netbeans (el que yo uso para php, java y c++) permite hacer el debug con una comodidad y detalle tremendo :P
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Drewermerc

#8
Hola angel lex.
Gracias por la recomendación  y bueno estoy ahorita estoy usando linux y como siempre lo habia instalado cada paquete por separado nunca habia tenido problemas hasta hoy no se por que, aun que lo de xampp o wamp si los e utilizado en windows.

Edito:
Bueno gracias por el dato la buscare e instalare la libreria para probarla junto con netbeans.

Saludos.
Drewermerc.

MinusFour

Cita de: Drewermerc en 23 Julio 2014, 06:45 AM
Hola MinusFour.

gracias por el código aun que aun no manejo ajax pero si entendí varias de las cosas ya que es javascript y si lo manejo un poco, aun que no se si es una variable predefinida en ajax response eso si no lo entendí bien.

y bueno una cosa intente encontrar por que no da la diferencia de las horas  y minutos solo poner la hora actual no se si me puedas ayudar o si quieres dime en que parte me tengo que enfocar del código para poder resolverlo yo.

bueno muchas gracias de nuevo por el código.
Saludos.
Drewermerc.

Sí está restando las horas, minutos y segundos. Lo que pasa es que estamos restando a las 00:00 (el inicio) del día. Si quieres restar horas, minutos y segundos , debes agregar al campo time que envias al servidor.

Código (javascript) [Seleccionar]

    var fecha = "time=" + mes + "/" + dia + "/" + ano;


Necesitarías enviar algo así como:

Código (javascript) [Seleccionar]

    var fecha = "time=" + mes + "/" + dia + "/" + ano + " " + hora + ":" + minuto + ":" + segundo;


Tienes que crear los inputs para poner la hora, minuto y segundo, recojer los valores de estos inputs y darles sus variables para enviar por AJAX.