JavaScript Día Anterior

devilitao

Buenos días,

Una duda para los expertos en javaScript,

Tengo que hacer un función que al cargar un body automáticamente me cargue el día anterior al de hoy...estoy bastante perdido con esto ya que hace muuuucho tiempo que no hago nada de esto.

Supongo que en el body del html se tendrá que poner un onload con la función para que se cargue el día anterior, pero vamos que estoy negado hoy y no doy con ello.

Gracias por si alguien me puede ayudar.

Troyer

Creo que aún no es posible retroceder en el tiempo.

A que te refieres a que te cargue el día anterior?

1 1 respuesta
devilitao

#2 Ein?? Igual me expresé mal....

Simplificando lo antes dicho, si hoy es 8 pues se tendría que mostrar lo del día 7. Y mañana que es día 9 pues lo del día 8...
¿No es posible eso?

Edito:
Tengo esta función en el .js

function prueba(){
var fecha=new Date();
fecha.setDate(fecha.getDate() - 1);
}

Luego en el html.

<body onload="prueba()">

Pero no me hace nada xDD

2 respuestas
Troyer

#3 así de entrada, no.

EDIT: Ah, estás hablando de coger el día anterior de la fecha actual, pensaba que querías cargar la web de ayer xdxdxd

1 respuesta
Hiervan

#3 Esto quizás te eche una mano, tampoco lo he revisado con mucha atención, pero quizás te ayude: https://stackoverflow.com/questions/16401804/how-to-get-the-day-before-a-date-in-javascript

1 1 respuesta
devilitao

#4 Si eso es. Igual me exprese mal...

#5 Eso es más o menos lo que tengo, pero luego al hacer digamos la llamada desde el html a la función no me carga el día anterior.

B

Así de primeras, prueba a tener la consola abierta cuando se carga la página, igual te está dando algún error y de ahí que no salte el onload

1 respuesta
devilitao

#7 Nada no me dice nada.

1 respuesta
Troyer

Si necesitas que se ejecute si o si no te hace falta un onload ni nada, esto te vale:

<html>
  <body>
  <script>
    (function() {
  	  var fecha=new Date();
          fecha.setDate(fecha.getDate() - 1);
	  alert(fecha.toDateString());
    })();
  </script>
  </body>
</html>

https://jsfiddle.net/rde3xL81/1/

pakuko

#8 estas seguro de que tienes correctamente enlazado el .js?

1
Mortium

Pasa el código primo

neoline

Prueba a llamar a la función desde "window":

window.onload = function() {
 prueba();
}
devilitao

Buenas ya está solucionado,

El problema era que en una función del .js había un if que siempre que era el primer día de la semana me devolvía dos días atrás...por lo que quitando ese if y poniendo siempre un día atrás me lo hace.

Muchas gracias por todo gente. :)

eXtreM3

Igualmente tienes que hacer una petición al servidor para obtener la fecha real, si no estarás cogiendo la fecha del cliente en su máquina y eso no es lo que quieres.

1 respuesta
tracker086

#14 Que buenos tiempos cuando los trials de los programas se les engañaban simplementa cambiando la fecha del sistema jaja

1 respuesta
eXtreM3

#15 correcto xD

geduino

Ojito con lo que estais comentando:

window.onload = function(){

}

Este código solo se puede usar una vez. Si tienes algún otro Js en el que se ejecute el mísmo código, en función del orden de carga se va a ejecutar uno u otro.

La mejor solución es crear un listener para el evento Load:

 window.addEventListener("load", function(){
     tuFuncion();
 });

De esta forma, puedes tener varios ficheros JS que añadan listeners sin pisarse unos a otros.

Edit: Creo que mi comentario es más informativo sobre el uso de eventos en JS que sobre tu problema pero como he visto que ya lo habías solucionado me ha parecido interesante comentarlo.

2

Usuarios habituales