submithandler - Compruebe si la fecha es en el pasado Javascript
jquery validate rules (4)
Todos, estoy usando la interfaz de usuario de jQuery para el selector de fecha. Estoy tratando de verificar con Javascript que la fecha que el usuario ha ingresado está en el pasado. Aquí está mi código de formulario:
<input type="text" id="datepicker" name="event_date" class="datepicker">
Entonces, ¿cómo verificaría esto con Javascript para asegurarme de que no sea una fecha en el pasado? Gracias
Para hacer que la respuesta sea más reutilizable para otras cosas que no sean solo la función de cambio de creador de fecha, puede crear un prototipo para manejarlo por usted.
// safety check to see if the prototype name is already defined
Function.prototype.method = function (name, func) {
if (!this.prototype[name]) {
this.prototype[name] = func;
return this;
}
};
Date.method(''inPast'', function () {
return this < new Date($.now());// the $.now() requires jQuery
});
// including this prototype as using in example
Date.method(''addDays'', function (days) {
var date = new Date(this);
date.setDate(date.getDate() + (days));
return date;
});
Si no te gusta el control de seguridad, puedes usar la forma convencional para definir prototipos:
Date.prototype.inPast = function(){
return this < new Date($.now());// the $.now() requires jQuery
}
Ejemplo de uso
var dt = new Date($.now());
var yesterday = dt.addDays(-1);
var tomorrow = dt.addDays(1);
console.log(''Yesterday: '' + yesterday.inPast());
console.log(''Tomorrow: '' + tomorrow.inPast());
$(''#datepicker'').datepicker().change(evt => {
var selectedDate = $(''#datepicker'').datepicker(''getDate'');
var now = new Date();
now.setHours(0,0,0,0);
if (selectedDate < now) {
console.log("Selected date is in the past");
} else {
console.log("Selected date is NOT in the past");
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
<input type="text" id="datepicker" name="event_date" class="datepicker">
function isPrevDate() {
alert("startDate is " + Startdate);
if(Startdate.length != 0 && Startdate !='''') {
var start_date = Startdate.split(''-'');
alert("Input date: "+ start_date);
start_date=start_date[1]+"/"+start_date[2]+"/"+start_date[0];
alert("start date arrray format " + start_date);
var a = new Date(start_date);
//alert("The date is a" +a);
var today = new Date();
var day = today.getDate();
var mon = today.getMonth()+1;
var year = today.getFullYear();
today = (mon+"/"+day+"/"+year);
//alert(today);
var today = new Date(today);
alert("Today: "+today.getTime());
alert("a : "+a.getTime());
if(today.getTime() > a.getTime() )
{
alert("Please select Start date in range");
return false;
} else {
return true;
}
}
}
var datep = $(''#datepicker'').val();
if(Date.parse(datep)-Date.parse(new Date())<0)
{
// do something
}