Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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比较两个日期以获得差异_Javascript_Date_Timestamp_Compare - Fatal编程技术网

Javascript比较两个日期以获得差异

Javascript比较两个日期以获得差异,javascript,date,timestamp,compare,Javascript,Date,Timestamp,Compare,我试图比较两个不同的日期,看看输入的日期是否在今天的7天后。我用谷歌搜索了一下,得出了以下结论: function val_date(input){ var date = new Date(input); date = date.getTime() / 1000; var timestamp = new Date().getTime() + (7 * 24 * 60 * 60 * 1000) window.alert("Date: "+date + " = N_D

我试图比较两个不同的日期,看看输入的日期是否在今天的7天后。我用谷歌搜索了一下,得出了以下结论:

function val_date(input){
    var date = new Date(input);
    date = date.getTime() / 1000;
    var timestamp = new Date().getTime() + (7 * 24 * 60 * 60 * 1000)
    window.alert("Date: "+date + " = N_Date: "+timestamp);
    if(timestamp > date || timestamp === date){
        // The selected time is less than 7 days from now
        return false;
    }
    else if(timestamp < date){
    // The selected time is more than 7 days from now
        return true;
    }
    else{
    // -Exact- same timestamps.
        return false;
    }
}
函数值日期(输入){
var日期=新日期(输入);
date=date.getTime()/1000;
var timestamp=new Date().getTime()+(7*24*60*60*1000)
window.alert(“日期:+Date+”=N_日期:+timestamp);
如果(时间戳>日期| |时间戳===日期){
//所选时间从现在起少于7天
返回false;
}
else if(时间戳<日期){
//所选时间是从现在起7天以上
返回true;
}
否则{
//-精确-相同的时间戳。
返回false;
}
}
我正在使用警报,以便检查我的进度,以确保日期不同。警报的输出只是说:

日期:NaN=N_日期=13255772630(使用:

使用:


日期:
NaN
,因为传递给日期创建的字符串无法创建日期
试一试

Date.prototype.addDays=函数(天){
this.setDate(this.getDate()+天);
归还这个;
};
函数val_日期(输入){
var inputDate=新日期(输入);
var dateWeek=新日期().addDays(7);
日志(inputDate,dateWeek);
如果(输入日期<日期周){
//所选时间从现在起少于7天
返回false;
}否则{
//所选时间是从现在起7天以上
返回true;
}
}

日期:
NaN
因为您传递给日期创建的字符串无法创建日期
试一试

Date.prototype.addDays=函数(天){
this.setDate(this.getDate()+天);
归还这个;
};
函数val_日期(输入){
var inputDate=新日期(输入);
var dateWeek=新日期().addDays(7);
日志(inputDate,dateWeek);
如果(输入日期<日期周){
//所选时间从现在起少于7天
返回false;
}否则{
//所选时间是从现在起7天以上
返回true;
}
}

这是非常常见的,如果您要处理日期,您可能需要使用Javascript库来实现这一点

使用此选项,您可以执行以下操作:

// dateString is format DD-MM-YYYY
function isMoreThan7DaysHence(dateString) {

    // Turn string into a date object at 00:00:00
    var t = dateString.split('-');
    var d0 = new Date(t[2], --t[1], t[0]);

    // Create a date for 7 days hence at 00:00:00
    var d1 = new Date();
    d1.setHours(0, 0, 0, 0);
    d1.setDate(d1.getDate() + 7);

    return d0 >= d1;
}

力矩()。添加('天',7)


找到未来的一周。

这是很常见的,如果你要处理日期,你可能需要使用Javascript库。有一个很好的

使用此选项,您可以执行以下操作:

// dateString is format DD-MM-YYYY
function isMoreThan7DaysHence(dateString) {

    // Turn string into a date object at 00:00:00
    var t = dateString.split('-');
    var d0 = new Date(t[2], --t[1], t[0]);

    // Create a date for 7 days hence at 00:00:00
    var d1 = new Date();
    d1.setHours(0, 0, 0, 0);
    d1.setDate(d1.getDate() + 7);

    return d0 >= d1;
}

力矩()。添加('天',7)


如果输入是有效的Javascript日期对象,您可以尝试:

function dateDifference(oldDate) {
    var currentDate = new Date();
    var difference = currentDate - oldDate; //unit: milliseconds
    var numDays = 7;
    var threshHoldTime = numDays * (24 * 60 * 60 * 1000); //seven days in milliseconds
    if (difference > threshHoldTime ) {
        console.log("The difference is greateer then then 7 days");
    }
    else {
        console.log("the date is not enough: " + difference);
    }
}

假设输入是有效的Javascript日期对象,您可以尝试:

function dateDifference(oldDate) {
    var currentDate = new Date();
    var difference = currentDate - oldDate; //unit: milliseconds
    var numDays = 7;
    var threshHoldTime = numDays * (24 * 60 * 60 * 1000); //seven days in milliseconds
    if (difference > threshHoldTime ) {
        console.log("The difference is greateer then then 7 days");
    }
    else {
        console.log("the date is not enough: " + difference);
    }
}
像这样试试

var date = new Date(input).getTime(); // Get the milliseconds
var today = new Date();    

//You can't compare date, 
//so convert them to milliseconds
today = new Date(today.setDate(today.getDate() + 7)).getTime(); 
if (inputDate < today) {
    // The selected time is less than 7 days from now
    return false;
 } else if{ ()
    // -Exact- same timestamps.
    return false;
 }
 else {
    // The selected time is more than 7 days from now
    return true;
 }
var date=new date(input).getTime();//获取毫秒数
var today=新日期();
//你不能比较日期,
//所以把它们转换成毫秒
today=新日期(today.setDate(today.getDate()+7)).getTime();
如果(输入日期<今天){
//所选时间从现在起少于7天
返回false;
}如果{()
//-精确-相同的时间戳。
返回false;
}
否则{
//所选时间是从现在起7天以上
返回true;
}
像这样试试

var date = new Date(input).getTime(); // Get the milliseconds
var today = new Date();    

//You can't compare date, 
//so convert them to milliseconds
today = new Date(today.setDate(today.getDate() + 7)).getTime(); 
if (inputDate < today) {
    // The selected time is less than 7 days from now
    return false;
 } else if{ ()
    // -Exact- same timestamps.
    return false;
 }
 else {
    // The selected time is more than 7 days from now
    return true;
 }
var date=new date(input).getTime();//获取毫秒数
var today=新日期();
//你不能比较日期,
//所以把它们转换成毫秒
today=新日期(today.setDate(today.getDate()+7)).getTime();
如果(输入日期<今天){
//所选时间从现在起少于7天
返回false;
}如果{()
//-精确-相同的时间戳。
返回false;
}
否则{
//所选时间是从现在起7天以上
返回true;
}

如果您正在比较日期,但不想包括时间,可以使用以下方法:

// dateString is format DD-MM-YYYY
function isMoreThan7DaysHence(dateString) {

    // Turn string into a date object at 00:00:00
    var t = dateString.split('-');
    var d0 = new Date(t[2], --t[1], t[0]);

    // Create a date for 7 days hence at 00:00:00
    var d1 = new Date();
    d1.setHours(0, 0, 0, 0);
    d1.setDate(d1.getDate() + 7);

    return d0 >= d1;
}

请注意,今天日期的小时数必须归零。

如果要比较日期而不想包括时间,可以使用以下方法:

// dateString is format DD-MM-YYYY
function isMoreThan7DaysHence(dateString) {

    // Turn string into a date object at 00:00:00
    var t = dateString.split('-');
    var d0 = new Date(t[2], --t[1], t[0]);

    // Create a date for 7 days hence at 00:00:00
    var d1 = new Date();
    d1.setHours(0, 0, 0, 0);
    d1.setDate(d1.getDate() + 7);

    return d0 >= d1;
}

请注意,今天日期的小时数必须归零。

“…警报只显示:date:NaN”这告诉您,
输入的
,无论它是什么,都是一个字符串,无法由
日期
构造函数解析。调用
新日期的结果(“一些无效字符串”)
是一个
日期
,其时间编号为
NaN
。输入的值是什么?您的日期格式是什么?我的日期格式是DD-MM-YYYY“…警报只是说:Date:NaN”这告诉您
输入
,无论它是什么,都是一个无法被
日期
构造函数解析的字符串。调用
新日期的结果(“某些无效字符串”)
是一个
日期
,其时间编号为
NaN
。输入值是什么?日期格式是什么?我的日期格式是DD-MM-yyyyy OP的字符串格式是DD-MM-YYYY,大多数浏览器日期构造函数都不会正确解析该格式。日期字符串应手动解析。创建的日期将在0:00:00,但dateWeek将为0:00在当前时间,so将在第7天返回false,此时它应返回true。OP的字符串格式为DD-MM-YYYY,大多数浏览器日期构造函数将无法正确解析。日期字符串应手动解析。创建的日期将在0:00:00,但dateWeek将在当前时间返回false,因此,当它应该返回true。输入是字符串,而不是日期对象。输入是字符串,而不是日期对象。输入是日期构造函数无法正确解析的字符串(如OP中所述)。日期对象可以直接比较。@RobG比较日期对象不起作用,请检查是否正确wrong@RobG
var日期=新日期(“2013年12月12日“;
仅在chrome浏览器中工作,但在其他浏览器中失败。我之前没有注意到这一点,所以我发布了答案。好的,您不能使用