Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.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 比较JS中的两个日期_Javascript_Html_Forms_Date - Fatal编程技术网

Javascript 比较JS中的两个日期

Javascript 比较JS中的两个日期,javascript,html,forms,date,Javascript,Html,Forms,Date,我想将用户的生日与今天的日期进行比较,得到两者之间的天数。他们输入的生日将以1987年2月12日的形式出现在文本输入框中 在我的JS文件中,我有如下代码: function validateDOB(element) { var valid = false; var today = new Date(); var dd = today.getDate(); var mm = today.getMonth() + 1; //do that January is NOT represented by

我想将用户的生日与今天的日期进行比较,得到两者之间的天数。他们输入的生日将以1987年2月12日的形式出现在文本输入框中

在我的JS文件中,我有如下代码:

function validateDOB(element) {
var valid = false;

var today = new Date();
var dd = today.getDate();
var mm = today.getMonth() + 1; //do that January is NOT represented by 0!
var yyyy = today.getFullYear();

if (dd < 10) {
    dd = '0' + dd
}
if (mm < 10) {
    mm = '0' + mm
}

var today = mm + '/' + dd + '/' + yyyy;
alert(today);
if (element.value != today) {
    var days = 0;
    var difference = 0;

    Christmas = new Date("December 25, 2011");

    today = new Date();

    difference = today - Christmas

    days = Math.round(difference / (1000 * 60 * 60 * 24)-1);
    alert(days); 
    valid = true;
}
函数validateDOB(元素){
var-valid=false;
var today=新日期();
var dd=today.getDate();
var mm=today.getMonth()+1;//请确保一月不由0表示!
var yyyy=today.getFullYear();
如果(dd<10){
dd='0'+dd
}
如果(毫米<10){
毫米='0'+毫米
}
var today=mm+'/'+dd+'/'+yyyy;
警报(今日);
如果(element.value!=今天){
风险值天数=0;
var差=0;
圣诞节=新日期(“2011年12月25日”);
今天=新日期();
差异=今天-圣诞节
天数=数学四舍五入(差/(1000*60*60*24)-1);
警报(天);
有效=真;
}
我想比较
element.value
,而不是使用“Christmas”…我该怎么做


当我放置
difference=today-element.value
时,它不会显示差异。警报框显示为
NaN

,您需要首先将
element.value
解析为日期:

difference = today - new Date(element.value);

我编写了一个名为的轻量级日期库来处理类似的内容

var birthday = moment('12/02/1987', 'MM-DD-YYYY');
var inputDate = moment(element.value, 'MM-DD-YYYY');
var diff = birthday.diff(inputDate, 'days'); 

可能重复@widor no,我的Q是具体的…你的问题是具体的,是的,但这个问题回答了它。@Blender-真正的问题(尽管它的标题)似乎是“为什么
difference=today-元素。value
返回
NaN
?”。链接的问题试图确定一个日期是否大于、小于或等于另一个日期。此问题是关于确定两个日期之间的天数。此处已正确进行了日期比较,因此答案没有真正的帮助。真正的答案是在比较.Mo之前将字符串解析为日期Mint为过时的格式化和操作带来了很多痛苦。很棒的工作。瞬间是世界上最好的东西。此刻,瞬间摇滚!非常好的插件。处理日期和区域设置是一件痛苦的事情。漂亮的库,日期痛苦就这样消失了!