Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] función añadir día a la fecha actual

Estas en el tema de función añadir día a la fecha actual en el foro de Javascript en Foros del Web. Buenas a todos. Y gracias de antemano. A ver si alguien me puede echar un cable. Resulta que tengo este código para añadir o restar ...
  #1 (permalink)  
Antiguo 04/03/2016, 06:31
 
Fecha de Ingreso: mayo-2015
Mensajes: 92
Antigüedad: 9 años, 6 meses
Puntos: 1
función añadir día a la fecha actual

Buenas a todos. Y gracias de antemano. A ver si alguien me puede echar un cable.

Resulta que tengo este código para añadir o restar un día a la fecha actual (solo paso uno, pq el de restar, será igual que el de sumar pero restando)

Código:
// Fecha día anterior   
     $scope.previousDay = function(){

    var date = new Date();
    var newdate = new Date(date);
    newdate.setDate(newdate.getDate() - 1);

    var dd = newdate.getDate();
    if (dd<10){
        dd = "0" + dd; 
    }
    var MM = newdate.getMonth() + 1;
    if (MM < 10) {
                MM = "0" + MM;
                 }
    var yyyy = newdate.getFullYear();
    
    var today = dd + '-' + MM + '-' + yyyy; 
    
    $scope.today = newdate;
Código HTML:
 <a href="#" ng-click="previousDay()"  >Anterior  </a> 
Pero con este código lo único que hago es añadir o restar un día de la fecha actual, pero lo que en realidad estoy buscando es restar días cada vez que hago click en el botón...

Alguien puede decirme pq? Sé que estoy restando todo el rato sobre la misma fecha, por eso sólo me resta una vez y ya no hace nada más. Pero no sé cómo actualizar la fecha sobre la que restar.

(Soy bastante novatilla, y ya me ha costado lo suyo llegar a restar un día).

graciassssss

Última edición por lamenenchu; 04/03/2016 a las 06:44
  #2 (permalink)  
Antiguo 04/03/2016, 11:14
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años, 1 mes
Puntos: 977
Respuesta: función añadir día a la fecha actual

Eso ocurre porque siempre inicias tomando la fecha actual. Lo conveniente sería que la guardes en una variable estática, por ejemplo:
Código Javascript:
Ver original
  1. $scope.fecha = $scope.fecha || new Date();

De esa manera, la primera vez que ejecutes la función, tomará a la fecha actual, pero en las siguientes ocasiones, tomará la fecha guardada a partir de $scope.fecha, para lo cual tendrás que trabajar con ella en las siguientes líneas de instrucción. $scope.fecha vendría a ser una propiedad o atributo de $scope, por eso es que el valor modificado se almacena permanentemente.

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 07/03/2016, 04:48
 
Fecha de Ingreso: mayo-2015
Mensajes: 92
Antigüedad: 9 años, 6 meses
Puntos: 1
Respuesta: función añadir día a la fecha actual

Cita:
Iniciado por Alexis88 Ver Mensaje
Eso ocurre porque siempre inicias tomando la fecha actual. Lo conveniente sería que la guardes en una variable estática, por ejemplo:
Código Javascript:
Ver original
  1. $scope.fecha = $scope.fecha || new Date();

De esa manera, la primera vez que ejecutes la función, tomará a la fecha actual, pero en las siguientes ocasiones, tomará la fecha guardada a partir de $scope.fecha, para lo cual tendrás que trabajar con ella en las siguientes líneas de instrucción. $scope.fecha vendría a ser una propiedad o atributo de $scope, por eso es que el valor modificado se almacena permanentemente.

Un saludo
Muchas gracias por tu respuesta... pero sigue sin actualizarse a la fecha actual. Le he pasado como bien has dicho $scope.fecha... pero se queda igual. sigue cogiendo la fecha actual. De hecho he puesto un console.log(today), y la fecha que me devuelve y que se supone que se guarda en today, es la fecha anterior.
En las siguientes lineas tengo código para rescatar datos de la bbdd con la variable 'today'. (la cual he formateado a dd-mm-yyyy).

Última edición por lamenenchu; 07/03/2016 a las 08:27
  #4 (permalink)  
Antiguo 07/03/2016, 09:18
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años, 1 mes
Puntos: 977
Respuesta: función añadir día a la fecha actual

¿Podrías mostrarnos el código actualizado?
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 07/03/2016, 12:33
 
Fecha de Ingreso: mayo-2015
Mensajes: 92
Antigüedad: 9 años, 6 meses
Puntos: 1
Respuesta: función añadir día a la fecha actual

Cita:
Iniciado por Alexis88 Ver Mensaje
¿Podrías mostrarnos el código actualizado?
Michas gracias por tus respuestas Alexis.

//Fecha día anterior
$scope.previousDay = function(){
var date = new Date();
var newdate = new Date(date);
newdate.setDate(newdate.getDate() - 1);

var dd = newdate.getDate();
if (dd<10){
dd = "0" + dd;
}
var MM = newdate.getMonth() + 1;
if (MM < 10) {
MM = "0" + MM;
}
var yyyy = newdate.getFullYear();

var today = dd + '-' + MM + '-' + yyyy;
$scope.date= today;
console.log(date);

$http.get('/agd/getIntervencion/'+today).success(function (data) {

$scope.intervenciones = data;

//mostrar intervenciones por día
for (var i in $scope.intervenciones) {
var actualDate = $scope.intervenciones.today;
if($scope.intervenciones[i].date === actualDate){
$scope.intervenciones[i].tipo;

}

}

}).error(function (data, status) {
// console.log("errrorrrrrrrrrrrr");
});

}
  #6 (permalink)  
Antiguo 07/03/2016, 23:03
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años, 1 mes
Puntos: 977
Respuesta: función añadir día a la fecha actual

Veo que no entendiste. Sigues obteniendo la fecha actual al iniciar la función cuando lo que debes de hacer es utilizar la línea de instrucción que te sugerí en mi primera respuesta.

Al empezar con esto:
Código Javascript:
Ver original
  1. var date = new Date();
Es lógico que sigas obteniendo el mismo resultado.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #7 (permalink)  
Antiguo 08/03/2016, 01:50
 
Fecha de Ingreso: mayo-2015
Mensajes: 92
Antigüedad: 9 años, 6 meses
Puntos: 1
Respuesta: función añadir día a la fecha actual

Cita:
Iniciado por Alexis88 Ver Mensaje
Veo que no entendiste. Sigues obteniendo la fecha actual al iniciar la función cuando lo que debes de hacer es utilizar la línea de instrucción que te sugerí en mi primera respuesta.

Al empezar con esto:
Código Javascript:
Ver original
  1. var date = new Date();
Es lógico que sigas obteniendo el mismo resultado.
Muchisimas gracias Alexis!! Ahora sí. Solucionado!!!

Etiquetas: actual, fecha
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:45.