比较javascript / jquery中的两种日期格式
我有以下内容:
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."); }
上面的代码不起作用。 上面有没有其他解决方案?
格式化日期根据我在哪里可以找到有关格式化JavaScript日期的文档? 也为我工作。
这很简单:
if(new Date(fit_start_time) <= new Date(fit_end_time)) {//compare end <=, not >= //your code here }
比较2个Date
实例将正常工作。 它只是隐式调用valueOf
,将Date
实例强制转换为整数,可以使用所有比较运算符进行比较。 好吧,要100%准确: Date
实例将被强制转换为Number
类型,因为JS不知道整数或浮点数,它们都是64位IEEE 754双精度浮点数。
要拼写字符串格式的日期(mm-dd-yyyy)。
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 }
在您的示例中, fit_start_time
不晚于fit_end_time
。
反过来试试:
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."); }
更新
您的代码意味着您希望使用当前变量查看alert
。 如果是这种情况,那么上面的代码是正确的。 如果您的意图(根据警告message
的含义)是确保他们的fit_start_time
变量是fit_end_time
之前的fit_end_time
,那么您的原始代码就可以了,但是您从jQuery .val()
获取的数据.val()
方法无法正确解析。 如果您向我们提供了选择器正在嗅探的实际HTML,这将有所帮助。
尝试使用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 }
这已经在:
使用JQuery从出生日期开始的年龄
或者你也可以使用Date.parse()
var date1 = new Date("10/25/2011"); var date2 = new Date("09/03/2010"); var date3 = new Date(Date.parse(date1) - Date.parse(date2));
试试另一种方式:
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'); }