Foros del Web » Programando para Internet » Javascript »

Duda con Codigo script para retrasar fecha del sistema

Estas en el tema de Duda con Codigo script para retrasar fecha del sistema en el foro de Javascript en Foros del Web. Saludos a todos...esta es mi primera vez aqui...me gustaria que por favor si alguien me pudiera ayudar con lo que estoy tratando de realizar. El ...
  #1 (permalink)  
Antiguo 13/10/2008, 15:43
 
Fecha de Ingreso: octubre-2008
Mensajes: 47
Antigüedad: 15 años, 6 meses
Puntos: 0
Duda con Codigo script para retrasar fecha del sistema

Saludos a todos...esta es mi primera vez aqui...me gustaria que por favor si alguien me pudiera ayudar con lo que estoy tratando de realizar.




El objetivo que necesito es mostrar en una pantalla la fecha del dia anterior.
Todo bien hasta aqui. Ya lo logrè.

Otra condicion que necesito es que cuando sea dia Lunes la pagina me arroje que es el dia sabado. Esto tambien lo logrè con el codigo debajo indicado.

El gran problema radica en los 1 y 2 de cada mes, ya que me arroja una fecha por ejemplo: Hoy es -1 de diciembre de 2008..

Favor quien sea tan amable de corregirme y asi aprender un poco mas.


SCRIPT
-----------
var fecha=new Date();
var diames=fecha.getDate() -1;
var diasemana=fecha.getDay() -1;
var mes=fecha.getMonth() +1 ;
var ano=fecha.getFullYear();
var diasabado=fecha.getDate() -2;

var TEXTOSEMANA = new Array (7);
TEXTOSEMANA[0]="DOMINGO";
TEXTOSEMANA[1]="LUNES";
TEXTOSEMANA[2]="MARTES";
TEXTOSEMANA[3]="MIÉRCOLES";
TEXTOSEMANA[4]="JUEVES";
TEXTOSEMANA[5]="VIERNES";
TEXTOSEMANA[6]="SÁBADO";

var TEXTOMES = new Array (12);
TEXTOMES[1]="ENERO";
TEXTOMES[2]="FEBRERO";
TEXTOMES[3]="MARZO";
TEXTOMES[4]="ABRIL";
TEXTOMES[5]="MAYO";
TEXTOMES[6]="JUNIO";
TEXTOMES[7]="JULIO";
TEXTOMES[7]="AGOSTO";
TEXTOMES[9]="SEPTIEMBRE";
TEXTOMES[10]="OCTUBRE";
TEXTOMES[11]="NOVIEMBRE";
TEXTOMES[12]="DICIEMBRE";

if (diasemana=TEXTOSEMANA[1])
document.write("BITACORA DEL " + TEXTOSEMANA[6] + " " + diasabado + " DE " + TEXTOMES[mes] + " DE " + ano + "<br>");

else
document.write("BITACORA DEL " + TEXTOSEMANA[diasemana] + " " + diames + " DE " + TEXTOMES[mes] + " DE " + ano + "<br>");
[/SIZE][/SIZE][/SIZE]
[/SIZE]
  #2 (permalink)  
Antiguo 29/10/2008, 15:03
 
Fecha de Ingreso: octubre-2008
Mensajes: 47
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Duda con Codigo script para retrasar fecha del sistema

Nadie capaz de ayudarme?
  #3 (permalink)  
Antiguo 29/10/2008, 16:36
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: Duda con Codigo script para retrasar fecha del sistema

Cita:
Nadie capaz de ayudarme?
No ofendas al insinuar que no tenemos la capacidad de ayudarte. Tu problema es la manera en la que estás haciendo la resta a las fechas. Te sugiero que investigues sobre el trabajo con fechas en javascript. No es que no tenga la capacidad de decirte como se hace. Solo quiero que demuestres que tú si la tienes.

Saludos.
  #4 (permalink)  
Antiguo 31/10/2008, 18:43
 
Fecha de Ingreso: octubre-2008
Mensajes: 47
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Duda con Codigo script para retrasar fecha del sistema

Disculpa no fue mi intención responder.
Lo que pasa es que yo nunca habia programado en javascript y estoy dando mis primeros pasos. Y necesito resolver este problema para una pagina que estoy montando para mi trabajo. De verdad le he dado muchas vueltas al codigo y no se me ocurre nada nuevo.
  #5 (permalink)  
Antiguo 31/10/2008, 21:25
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 1 mes
Puntos: 67
Respuesta: Duda con Codigo script para retrasar fecha del sistema

Lo que pasa es que alegremente restas las fechas, pero lo mejor es usar las funciones del objeto Date. Este objeto tiene una función o método que sirve para estas cosas:

getTime(): devuelve el número de milisegundos transcurridos entre el día 1 de enero de 1970 y la fecha correspondiente.

Es milisegundos, así que tienes que tomar en cuento esto: OK, primero obtenemos un objeto con la fecha actual:

var hoy = new Date();
var timHoy = hoy.getTime() // Obtenemos su número de milisegundos
var diaSem = hoy.getDay() // Obtenemos el día de la semana
if (diaSem == 1) { // Lunes
dis = 2 // Restamos dos días
} else {
dis = 1; // Restamos solo un día
}

var timAnt = timHoy - dis * 24 * 60 * 60 * 1000 // Restamos el número de miligundos de acuerdo a los días

var diaAnt = new Date() // Inicalizamos un nuevo objeto Date

diaAnt.setTime(timAnt);
//ok,ahora puedes tomar sus datos a este elemento (día, día de la semana,mes y año) y hacer lo que quieras con eso
// Espero que te sirva.
  #6 (permalink)  
Antiguo 04/11/2008, 14:01
 
Fecha de Ingreso: octubre-2008
Mensajes: 47
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Duda con Codigo script para retrasar fecha del sistema

Muchas gracias ya entendi tu idea...
Otra cosa....en caso que yo quiero mostrar en pantalla el resultado.. es decir..mostrar el dia anterior en mi pagina...

Probè colocando
document.write("dianAnt);
pero no me muestra nada....
  #7 (permalink)  
Antiguo 04/11/2008, 14:08
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Duda con Codigo script para retrasar fecha del sistema

La comilla que tienes antes de la variable no hace falta.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #8 (permalink)  
Antiguo 04/11/2008, 19:54
 
Fecha de Ingreso: octubre-2008
Mensajes: 47
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Duda con Codigo script para retrasar fecha del sistema

compañeros....el codigo funciona pero me aparece en el siguiente formato:

Mon Nov 3 21:23:05 UTC-0400 2008

hay alguna manera de que salga esto en español?
Si no es posible, por lo menos que solo me aparezca algo como 3-11-2008
  #9 (permalink)  
Antiguo 04/11/2008, 20:40
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Duda con Codigo script para retrasar fecha del sistema

Puedes usar los métodos de Date para obtener el resultado deseado, getDate() para obtener el día, getMonth() para el mes, getFullYear() para el año, y getDay() en caso de que quieras obtener el día de la semana.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #10 (permalink)  
Antiguo 05/11/2008, 11:29
 
Fecha de Ingreso: octubre-2008
Mensajes: 47
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Duda con Codigo script para retrasar fecha del sistema

He intentado varias cosas pero no logro que me aparezca lo siguiente:

Ejemplo: Lunes, 03 de Noviembre de 2008

solo me sigue saliendo...

Mon Nov 3
  #11 (permalink)  
Antiguo 05/11/2008, 11:31
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Duda con Codigo script para retrasar fecha del sistema

¿Has probado lo que te dije?. Con getDay() obtienes el número correspondiente al día de la semana, solo tienes que a partir de ahí convertirlo al nombre. Lo mismo sucede con getMonth() que te devuelve el número correspondiente al mes (empieza desde 0), solo también necesitas sustituir por el nombre y listo. Y después concatenar el resultado. Como una sugerencia, puedes usar un array para almacenar los nombres de los días y los meses, así, con solo especificar el índice ya obtendrías el nombre.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #12 (permalink)  
Antiguo 05/11/2008, 13:39
 
Fecha de Ingreso: octubre-2008
Mensajes: 47
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Duda con Codigo script para retrasar fecha del sistema

Amigo hasta los momentos llevo esto del codigo:

El siguiente script me permite mostrar el dia anterior de la semana..
Tengo una falla a ver si alguien me puede corregir.....cuando es dia domingo o lunes me arroja en la pagina lo siguiente "undefined"
Creo que la falla tiene que ver como estoy restando los dias, ya que si el dia es lunes (1) y quiero restarle (2) dias.....me da dicho error......
Creo que el mismo error tendrè cuando sea 1 o 2 de cada mes y quiera restar 2 dias o incluso 1....


*************************************
<script language="JavaScript" type="text/JavaScript">
var hoy = new Date();
var dia_semana = hoy.getDay();
var fecha_semana = hoy.getDate();
var mes = hoy.getMonth();
var year = hoy.getFullYear();

var DIA = new Array (7);
DIA[0]="DOMINGO";
DIA[1]="LUNES";
DIA[2]="MARTES";
DIA[3]="MIÉRCOLES";
DIA[4]="JUEVES";
DIA[5]="VIERNES";
DIA[6]="SÁBADO";

var MES = new Array (12);
MES[1]="ENERO";
MES[2]="FEBRERO";
MES[3]="MARZO";
MES[4]="ABRIL";
MES[5]="MAYO";
MES[6]="JUNIO";
MES[7]="JULIO";
MES[7]="AGOSTO";
MES[9]="SEPTIEMBRE";
MES[10]="OCTUBRE";
MES[11]="NOVIEMBRE";
MES[12]="DICIEMBRE";

if (dia_semana == 1){ // SI ES DIA LUNES
resta = 2;} // RESTA 2 DIAS
else {
resta = 1; // RESTA 1 DIA
}

fecha_anterior = dia_semana - resta;
document.write(DIA[fecha_anterior]);
</script>
************************************************** *********
  #13 (permalink)  
Antiguo 05/11/2008, 13:44
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Duda con Codigo script para retrasar fecha del sistema

Hola:

Teniendo un objeto Date() puedes redefinir el método toString(): Fecha + Hora

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #14 (permalink)  
Antiguo 06/11/2008, 14:23
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 1 mes
Puntos: 67
Respuesta: Duda con Codigo script para retrasar fecha del sistema

Bueno, no pensé que fueras tan inexperto, en fin, aquí está todo el código que hace lo que quieres:

Código:
<script language="JavaScript">
        var hoy = new Date(); 
        var timHoy = hoy.getTime();
        var diaSem = hoy.getDay();
        if (diaSem == 1) {
           dis = 2
        } else {
          dis = 1;
        }

        var timAnt = timHoy - dis * 24 * 60 * 60 * 1000;

        var diaAnt = new Date();

        diaAnt.setTime(timAnt);

        var diaSem = diaAnt.getDay();
        var dia = diaAnt.getDate();
        if (dia < 10) dia = "0" + dia;
        var mes = diaAnt.getMonth();
        var anio = diaAnt.getFullYear();


        var dSem = ["Domingo", "Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado"];
        var meses = ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"];

        document.write(dSem[diaSem] + ", " + dia + " de " + meses[mes] + " del " + anio);
</script>
  #15 (permalink)  
Antiguo 07/11/2008, 05:58
 
Fecha de Ingreso: octubre-2008
Mensajes: 47
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Duda con Codigo script para retrasar fecha del sistema

Muchisimoas gracias amigo ElJavista por el codigo....y de verdad disculpa pero si soy algo inexperto en esto..apenas estoy empezando.....y bueno como mi intenciòn es aprender y no solo copiarme tu codigo....entendì casi todo el codigo excepto la parte siguiente:

--------------------------------------------------
if (dia < 10) dia = "0" + dia;
--------------------------------------------------
que quiere decir?
  #16 (permalink)  
Antiguo 07/11/2008, 06:02
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Duda con Codigo script para retrasar fecha del sistema

Significa:
Código español:
Ver original
  1. Si dia es menor que 10 entonces añadir un cero a día
O sea, si por ejemplo tienes la fecha 7 de Noviembre del 2008 se convertirá en 07 de Noviembre del 2008.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #17 (permalink)  
Antiguo 07/11/2008, 09:50
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 1 mes
Puntos: 67
Respuesta: Duda con Codigo script para retrasar fecha del sistema

En JavaScript las variables cambian de tipo según la conveniencia. Al principio día es un número, si ese número es menor que 10, entonces añado un cero adelante, el hecho de que agregue un "0" adelante de dia, (dia = "0" + dia) lo convierte en cadena, porque no estoy sumando 0 + dia, sino estoy agregando a la cadena "0" el valor de día, el cual se convierte en cadena, de este modo si dia es 5 entonces se convierte en "05".

A lo mejor te puedes confundir con el hecho de que esta expresión:

dia = "0" + dia;

se parece a una ecuación, no lo es, es una expresión. Las operaciones se hacen en la derecha y el resultado pasa a darle el valor a la variable de la izquierda. Así trabajan todos los lenguajes de programación.
  #18 (permalink)  
Antiguo 12/11/2008, 07:46
 
Fecha de Ingreso: octubre-2008
Mensajes: 47
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Duda con Codigo script para retrasar fecha del sistema

Muchiisimas gracias. Problema resuelto..muy amables..
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 11:12.