Javascript 日期差

Javascript 日期差,javascript,Javascript,这是我用于日期的脚本: <script type="text/javascript"> var datefield=document.createElement("input") datefield.setAttribute("type", "date") if (datefield.type!="date"){ //if browser doesn't support input type="date", load files for jQuery UI Date Picker

这是我用于日期的脚本:

<script type="text/javascript">
var datefield=document.createElement("input")
datefield.setAttribute("type", "date")
if (datefield.type!="date"){ //if browser doesn't support input type="date", load files for jQuery UI Date Picker
    document.write('<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css" />\n')
    document.write('<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"><\/script>\n')
    document.write('<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"><\/script>\n') 
}
</script>

var datefield=document.createElement(“输入”)
datefield.setAttribute(“类型”、“日期”)
如果(datefield.type!=“date”){//如果浏览器不支持输入type=“date”,则为jQuery UI日期选择器加载文件
document.write(“\n”)
document.write(“\n”)
document.write(“\n”)
}
当需求未满足时,警报不起作用。下面是我的代码:

function validateForm() {


var x = document.forms["myForm"]["from"].value;
if (x == null || x == "") {
    alert("please choose the date");
    return false;
}
var y = document.forms["myForm"]["to"].value;
if (y == null || y == "") {
    alert("please choose the date");
    return false;
}

var date1 = new Date("x");
var date2 = new Date("y");

var diffDays = (date1 - date2);
var totalSeconds = diffDays / 1000;
var days = Math.floor(totalSeconds / 86400);
if(days < 7 )
{
    alert("please be more than 7 days");
    return false;
}
函数validateForm(){
var x=document.forms[“myForm”][“from”].value;
如果(x==null | | x==“”){
提醒(“请选择日期”);
返回false;
}
var y=document.forms[“myForm”][“to”].value;
如果(y==null | | y==“”){
提醒(“请选择日期”);
返回false;
}
var date1=新日期(“x”);
var date2=新日期(“y”);
var diffDays=(日期1-日期2);
var totalSeconds=diffDays/1000;
变量天数=数学下限(总秒数/86400);
如果(天数<7天)
{
警报(“请超过7天”);
返回false;
}

我在获取日期之间的范围时遇到问题。如果有任何帮助,我们将不胜感激。

您正在将变量
x
y
作为字符串传递到
Date
对象中。请删除它们周围的

var date1 = new Date(x);
var date2 = new Date(y);
更改:

var date1 = new Date("x");
var date2 = new Date("y");
致:


另请参阅以更可靠地检查是否支持日期类型。

在我更改日期类型后,即使日期超过7天,它也会继续显示警报使用
console.log(date1)
打印日期值并查看问题所在。我应该将其添加到哪里?
x
是您的from,
y
是您的to。然后从中减去
x-y
,to from。结果将是负数或零,因此始终小于7。通过选择有意义的变量名可以避免此类错误。为什么不调用“x”“fromDateValue”和“y”“toDateValue”…在我更改它之后,即使日期超过7天,它也会继续显示警报
var date1 = new Date(x);
var date2 = new Date(y);