J'ai ce qui suit:
var fit_start_time = $("#fit_start_time").val(); //2013-09-5
var fit_end_time = $("#fit_end_time").val(); //2013-09-10
if(Date.parse(fit_start_time)>=Date.parse(fit_end_time)){
alert("Please select a different End Date.");
}
Le code ci-dessus ne fonctionne pas. Y a-t-il une autre solution à celle ci-dessus?
formatage de la date selon Où puis-je trouver de la documentation sur le formatage d'une date en JavaScript? ça marche aussi pour moi.
C'est assez simple:
if(new Date(fit_start_time) <= new Date(fit_end_time))
{//compare end <=, not >=
//your code here
}
La comparaison de 2 instances de Date
fonctionnera très bien. Il appellera simplement valueOf
implicitement, en contraignant les instances Date
à des entiers, qui peuvent être comparés à l'aide de tous les opérateurs de comparaison. Eh bien, pour être précis à 100%: les instances Date
seront contraintes au type Number
, car JS ne connaît pas les nombres entiers ou flottants, ils sont tous signés 64 bits IEEE 754 double précision nombres à virgule flottante.
Comme dans votre exemple, le fit_start_time
N'est pas plus tard que le fit_end_time
.
Essayez-le dans l'autre sens:
var fit_start_time = $("#fit_start_time").val(); //2013-09-5
var fit_end_time = $("#fit_end_time").val(); //2013-09-10
if(Date.parse(fit_start_time) <= Date.parse(fit_end_time)){
alert("Please select a different End Date.");
}
Mise à jour
Votre code implique que vous voulez voir le alert
avec les variables actuelles que vous avez. Si tel est le cas, le code ci-dessus est correct. Si vous avez l'intention (selon l'implication de l'alerte message
) est de vous assurer que leur variable fit_start_time
Est une date qui est avant le fit_end_time
, alors votre code d'origine est correct, mais les données que vous obtenez à partir des méthodes jQuery .val()
ne sont pas analysées correctement. Il serait utile que vous nous donniez le code HTML réel que le sélecteur renifle.
Pour comparer les dates du format de chaîne (mm-jj-aaaa).
var job_start_date = "10-1-2014"; // Oct 1, 2014
var job_end_date = "11-1-2014"; // Nov 1, 2014
job_start_date = job_start_date.split('-');
job_end_date = job_end_date.split('-');
var new_start_date = new Date(job_start_date[2],job_start_date[0],job_start_date[1]);
var new_end_date = new Date(job_end_date[2],job_end_date[0],job_end_date[1]);
if(new_end_date <= new_start_date) {
// your code
}
essayez avec new Date(obj).getTime()
if( new Date(fit_start_time).getTime() > new Date(fit_end_time).getTime() )
{
alert(fit_start_time + " is greater."); // your code
}
else if( new Date(fit_start_time).getTime() < new Date(fit_end_time).getTime() )
{
alert(fit_end_time + " is greater."); // your code
}
else
{
alert("both are same!"); // your code
}
Essayez-le dans l'autre sens:
var start_date = $("#fit_start_time").val(); //05-09-2013
var end_date = $("#fit_end_time").val(); //10-09-2013
var format='dd-MM-y';
var result= compareDates(start_date,format,end_date,format);
if(result==1)/// end date is less than start date
{
alert('End date should be greater than Start date');
}
OR:
if(new Date(start_date) >= new Date(end_date))
{
alert('End date should be greater than Start date');
}
C'est déjà dans:
Âge à partir de la date de naissance à l'aide de JQuery
ou bien vous pouvez utiliser Date.parse () comme dans
var date1 = new Date("10/25/2011");
var date2 = new Date("09/03/2010");
var date3 = new Date(Date.parse(date1) - Date.parse(date2));