我有一个带有这个日期字段的bootstrap的html表单:
if(new Date($("#from").val() > new Date($("#to").val()) ....
我需要比较两者以检查“to”是“from”之后的日期,但是当我使用此代码进行比较时:
0
计算错误,因为在引擎盖下它将月份数字与日期数字交换。如何强制它采用dd / mm / yyyy格式(或将输入转换为mm / dd / yyyy)以获得正确的计算? 谢谢。
答案 0 :(得分:0)
在Javascript中,您可以生成日期为new Date(year,month,day)
,您需要以这种方式构建日期,然后尝试此操作,
var date = new Date(2010,10,10)
(new Date().getTime() - date.getTime())/ (24 * 60 * 60 * 1000)
在这段代码中,我从当前日期减去日期,只需稍加修改就可以使代码适用。
答案 1 :(得分:0)
您无法使用占位符强制使用日期格式。如果浏览器支持日期,它将被覆盖,具体取决于本地设置,在这种情况下,实际字段值应始终为YYYY-MM-DD格式。这就是Chrome处理该字段的方式。
在这种情况下,它将起作用
var from = new Date($("#from").val());
var to = new Date($("#to").val());
if (from > to)
其他浏览器(例如Firefox)确实不支持日期字段。它只是像普通的文本输入一样工作。在这种情况下,您需要执行一些字符串操作来分隔值并以Date()期望的方式插入它们: 新日期(YYYY,MM,DD);