Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript和moment.js中的用户输入日期比较_Javascript_Jquery_Html_Momentjs - Fatal编程技术网

Javascript和moment.js中的用户输入日期比较

Javascript和moment.js中的用户输入日期比较,javascript,jquery,html,momentjs,Javascript,Jquery,Html,Momentjs,我试图用moment.js比较两个与当前日期或今天日期无关的用户输入日期。我想根据日期差异显示颜色。请帮助我联系 这是我的密码: 函数比较(){ var firstDate=时刻($(“#date1”).val(),“MM-DD-YYYY”); var secondDate=力矩($(“#date2”).val(),“MM-DD-YYYY”); log(firstDate.inspect(),secondDate.inspect()); if(firstDate.isValid()&&seco

我试图用moment.js比较两个与当前日期或今天日期无关的用户输入日期。我想根据日期差异显示颜色。请帮助我联系

这是我的密码:

函数比较(){
var firstDate=时刻($(“#date1”).val(),“MM-DD-YYYY”);
var secondDate=力矩($(“#date2”).val(),“MM-DD-YYYY”);
log(firstDate.inspect(),secondDate.inspect());
if(firstDate.isValid()&&secondDate.isValid()){
//在使用momentjs的diff函数之前,需要进行验证
var diff=Math.abs(firstDate.diff(secondDate,'days');
控制台日志(diff);
//在添加新类之前,还需要删除所有类
$(“#状态”).removeClass(“redBg”).removeClass(“greenBg”).removeClass(“yellowBg”);
如果(差异=>14){
$(“#状态”).addClass('redBg');
}否则如果(7=6){
$(“#状态”).addClass('yellowBg');
}
}否则{
$(“#状态”).addClass('yellowBg');
}
});
.greenBg{
背景:绿色;
}
.yellowBg{
背景:黄色;
}
.redBg{
背景:红色;
}

您应该使用

document.getElementById('date1').value
不与

"document.getElementById'date1'"
代码应为:

var firstDate = moment(document.getElementById('date1').value, "MM-DD-YYYY");
var secondDate = moment(document.getElementById('date2').value, "MM-DD-YYYY");
或者更好

var firstDate = moment($('$date1').val(), "MM-DD-YYYY");
var secondDate = moment($('$date2').val(), "MM-DD-YYYY");

编辑

要使代码正常工作,需要如下所示:

函数比较(){
var firstDate=时刻($(“#date1”).val(),“MM-DD-YYYY”);
var secondDate=力矩($(“#date2”).val(),“MM-DD-YYYY”);
log(firstDate.inspect(),secondDate.inspect());
if(firstDate.isValid()&&secondDate.isValid()){
//在使用momentjs的diff函数之前,需要进行验证
var diff=firstDate.diff(secondDate,'days');
控制台日志(diff);
//在添加新类之前,还需要删除所有类
$(“#状态”).removeClass(“redBg”).removeClass(“greenBg”).removeClass(“yellowBg”);
如果(差异>7){
$(“#状态”).addClass('redBg');
}否则如果(差异>4){
$(“#状态”).addClass('greenBg');
}否则{
$(“#状态”).addClass('yellowBg');
}
}否则{
$(“#状态”).addClass('yellowBg');
}
}
.greenBg{
背景:绿色;
}
.yellowBg{
背景:黄色;
}
.redBg{
背景:红色;
}

你做错的是在
onclick=function()上

您不能以这种方式在
onclick
中分配未命名的函数

如果您想附加函数而不命名它,则应该考虑<代码> AdvestEnter Listor <代码>或使用jQuery <代码>。(单击),函数({ })路< /P>

更新

更新后,您的问题是总是检查正值。在以下情况下,力矩差将产生负值:

d1.diff(d2)
并且
d1
早于
d2


因此,您需要先
Math.abs()
it

您的代码片段包含jquery,只需获得如下值,
$(“#date1”).val()

通过单独指定,为日期使用通用格式

函数比较(){
$(“#状态”).removeClass('redBg greenBg yellowBg');
var dateFormat=“MM-DD-YYYY”;
var firstDate=时刻($(“#date1”).val(),日期格式);
var secondDate=时刻($(“#date2”).val(),日期格式);
var diff=firstDate.diff(secondDate,'days');
控制台日志('s',差异);
如果(7否则如果(diff您可以为firstDate和secondDate变量记录控制台吗?您也可以使用Math.abs将负差转换为正差。谢谢Taha。我还有一个问题,没有这个按钮,如何像ajax一样进行比较。您可以使用文本框的输入或更改事件来触发比较功能。很抱歉,您可以给出或引用任何测试吗请查看我的代码。我在Diff中做了简单的修改,但它不起作用。你能解决吗?我检查了代码段了吗?Textbox只更改了一次。请在Mohideennow处修复它。在调用函数之前,你没有删除应用类。$(“#status”)。removeClass('redBg greenBg yellowBg'));现在检查请看我的代码。我不能做差异运算。帮帮我