JavaScript - obtener fecha

   
Vista:

obtener fecha

Publicado por fran (7 intervenciones) el 06/02/2013 11:05:42
Hola, resulta que tengo un problema y por mas horas que me ponga o mas vueltas que le he dado, no he conseguido resolverlo.

Tengo un formulario donde le he puesto un boton de calendario ( calendar.js ) para que el usuario introduzca la fecha. Hasta ahi todo bien, pero resulta que en una funcion en javascript debo de sacar una condición si es fin de semana.
Pues bien yo tengo hecha una condicion que funciona pero cuando el calendario tiene un formato de fecha distinto al que yo quiero poner:
la funcion funciona con este formato:"%Y/%m/%d"
pero no con este que es el que debo poner :"%A, %d - %b - %Y"
Con todo esto , que espero que me entendais, ha ver si me podeis ayudar a resolver este problema que por mas vueltas que le he dado no consigo resolver; no se si se puede indicar a la funcion el formato a mostrar, si hay que cambiar el formato en el calendar, etc.
La fecha que indico hay que obtenerla del input text.
os dejo la funcion que he hecho a falta de poder resolver este problema, saludos..

var fecha = new Date(document.getElementById("fecha").value);

var dia_semana = fecha.getDay();
if(dia_semana == 0 || dia_semana == 6){

alert("correcto");}
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

obtener fecha

Publicado por Fernanda (13 intervenciones) el 06/02/2013 21:58:28
y si antes de verificar si el fin de semana, validas el formato de la fecha?
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 xve

obtener fecha

Publicado por xve (1595 intervenciones) el 07/02/2013 07:27:21
Hola Fran, aquí tienes una función que te hace la conversión de fecha en formato español a ingles: http://www.lawebdelprogramador.com/codigo/JavaScript/2296-Convierte_una_fecha_en_formato_espanol_a_ingles.html

Una vez convertida a ingles, ya podrás obtener los datos que quieres de manera correcta.

Espero que te sirva.
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

obtener fecha

Publicado por fran (7 intervenciones) el 07/02/2013 19:10:07
perdonad mi desconocimiento ya que apenas me adentro en javascript;
pero para que quiero mi fecha al ingles?
el formato que debo extraer es este: "%A, %d - %b - %Y"; el cual significa : lunes, 02 de Enero del 2013 ( por ejemplo ).
de todas formas en el ejemplo que me mostraste se emplean unos parámetros que desconozco...
Entonces como puedo transformar ese formato para que tenga validez al utilizar "date"?
Saludos...
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 xve

obtener fecha

Publicado por xve (1595 intervenciones) el 08/02/2013 08:48:02
Si no la tienes en formato inglés, no podrás saber el día de la semana, ya que la función getDay() trabaja con un objeto Date(), el cual tiene que tener una fecha que no es el formato que tu tienes.

Por esto te indique que si pasas tu fecha a formato inglés, te funcionara la función getDay()
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

obtener fecha

Publicado por fran (7 intervenciones) el 11/02/2013 17:14:48
al final he obtenido la fecha desde el elemento fecha; es decir desde la función que invoca el calendario. despues he puesto un campo oculto para asignarle al value 20€ si es fin de semana, y asi he podido aplicarle un plus al precio:
Javascript:
if(dia_semana == 0 || dia_semana == 6){
document.getElementById("fin_semana").value=20;
}else{document.getElementById("fin_semana").value=0}

html:
<input type="hidden" id="fin_semana" value="0" />

De todas formas me gustaria aprender como cambiarle el formato a la fecha (por si en le futuro lo necesitara); pero sigo viendo el código que me mostraste y me parece muy complejo.
Es decir, en ese la función esta hecha para un determinado formato entonces los caracteres deben ser diferentes para cambiar al formato mio y despues como se obtiene la variable de la conversion al formato para despues aplicarle el new date.
No se, haber si me pudieras "iluminar" ( aunque tambien debe ser el cansancio )para la construcción de la función para obtener el formato deseado...Saludos.
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 xve

obtener fecha

Publicado por xve (1595 intervenciones) el 11/02/2013 17:29:49
Hola Fran, pero como has conseguido saber si el dia de la semana de tu fecha es fin de semana?
Es decir, de donde sale el valor de la variable: dia_semana?
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

obtener fecha

Publicado por fran (7 intervenciones) el 11/02/2013 20:22:38
perdon; de esta función en la que ya tenia hechas diversas funcionalidades mas y en que esta variable es obtenida del propio codigo del calendar.js:
var dia_semana=cal.date.getDay();

aqui te dejo la funcion completa para que te hagas una idea:

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
function tratarCalendario(cal) {
 
 
var valor = document.getElementById("fecha");
var valor2 = document.getElementById("fecha").style.color = "#FFFFFF";
var dia_mes=cal.date.getDate();
var dia_semana=cal.date.getDay();
 
//condicion para saber si la fecha es multiplo de 5
 if(dia_mes % 5 == 0){
  valor.style.backgroundColor = "#AD0000";
 alert("No es posible el alquiler, ya que cada 5 días cierra la empresa por descanso del personal.");
 return false;
}
  else{valor.style.backgroundColor = "#007800"};
//condicion para saber si la fecha es fin de semana
 if(dia_semana == 0 || dia_semana == 6){
  alert("Se abonará un plus de 20€ por ser fin de semana.");
 }
 if(dia_semana == 0 || dia_semana == 6){
  document.getElementById("fin_semana").value=20;
 }else{document.getElementById("fin_semana").value=0}
}
Calendar.setup({inputField: "fecha", ifFormat: "%A, %d - %b - %Y", button: "selector", onUpdate: tratarCalendario})
}
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 xve

obtener fecha

Publicado por xve (1595 intervenciones) el 12/02/2013 09:39:07
Ah, ok, perfecto Fran... gracias por comentarlo.
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

obtener fecha

Publicado por fran (7 intervenciones) el 12/02/2013 10:52:55
De nada.
Aún así, y ya que me gusta aprender, haber si me podrias exponer la otra solucion que me planteabas...
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