¿En serio creen que es poco amigable? Es verdad que las funciones implementadas en VBScript son más cómodas, pero es dependiente de que el browser sea IE. Excelente para desarrollar una intranet, pero no para la Internet.
Podemos implementar nuestros propios métodos en JavaScript para realizar las mismas tareas, con la misma comodidad, o incluso mejor.
Trabajo constantemente con fechas, así que tengo una librería que define métodos para Date gracias a que uso el prototype. (Bendita sea la OOP).
Por ejemplo dada una fecha determinada, quiero sumarle 20 días:
Código:
var hoy = new Date();
var hoyMas20 = hoy.sumDia(20);
Y aquí, ya estarán pensando que he perdido un tornillo, porque Date no tiene el método sumDia(). Vuelvo a lo mismo. Quizá los métodos de Date no sean tan amigables... hágamoslos entonces.
Para que lo anterior funcione, en un archivo que luego agrego en el encabezado de la página donde requiero los metodos personales para Date, tengo entre el código esto:
Código:
function estableceDia(numDias){
tmpMiliSec = this.getTime() + (numDias * this.miliSecDia);
return new Date(tmpMiliSec)
}
Date.prototype.miliSecDia = 86400000;
Date.prototype.sumDia = estableceDia;
Y a partir de allí ¿que más da que los métodos de Date no sean tan sencillos?
Joja_2:
Prueba esto...
Código:
<html>
<head>
<script language="JavaScript">
function obtenerLiteral(){
var arDia = new Array("Domingo", "Lunes","Martes","Miércoles",
"Jueves","Viernes","Sábado","Domingo");
var arMes = new Array("Enero","Febrero","Marzo","Abril",
"Mayo","Junio","Julio","Agosto",
"Septiembre","Octubre","Noviembre","Diciembre");
lit = arDia[this.getDay()] + " " + this.getDate() + " de " +
arMes[this.getMonth()] + " de " + this.getFullYear();
return lit;
}
function estableceDia(numDias){
tmpMiliSec = this.getTime() + (numDias * this.miliSecDia);
return new Date(tmpMiliSec)
}
Date.prototype.miliSecDia = 86400000;
Date.prototype.toLiteral = obtenerLiteral;
Date.prototype.sumDia = estableceDia;
var semana = 0;
var hoy = new Date();
function establecerSemana(adelante){
adelante = (isNaN(parseInt(adelante))) ? 0 : adelante;
semana += adelante * 7;
document.form1.dia1.value = hoy.sumDia(semana - hoy.getDay() + 1).toLiteral();
document.form1.dia2.value = hoy.sumDia(semana - hoy.getDay() + 5).toLiteral();
}
window.onload = establecerSemana;
</script>
</head>
<body>
<form name="form1">
<input type="text" name="dia1" style="width:200">
<input type="text" name="dia2" style="width:200"><br>
<input type="button" value = "Atrás" name="btnAtras" onclick="establecerSemana(-1)">
<input type="button" value = "Adelante" name="btnAdelante" onclick="establecerSemana(1)">
</form>
</body>
</html>
Saludos.