Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.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/9/extjs/3.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 如何计算从今天到给定日期的天数以及getTime()的代码?_Javascript_Extjs - Fatal编程技术网

Javascript 如何计算从今天到给定日期的天数以及getTime()的代码?

Javascript 如何计算从今天到给定日期的天数以及getTime()的代码?,javascript,extjs,Javascript,Extjs,我想计算从今天到给定日期之间的天数,并检查离今天还有多少天,或者从今天起还有多少天 var today = new Date(); var date_to_reply = new Date('2012-10-15'); var timeinmilisec = today.getTime() - date_to_reply.getTime(); console.log( Math.floor(timeinmilisec / (1000 * 60 * 60 * 24)) ); 这给了我5作为答案,

我想计算从今天到给定日期之间的天数,并检查离今天还有多少天,或者从今天起还有多少天

var today = new Date();
var date_to_reply = new Date('2012-10-15');
var timeinmilisec = today.getTime() - date_to_reply.getTime();
console.log( Math.floor(timeinmilisec / (1000 * 60 * 60 * 24)) );
这给了我5作为答案,但是我应该如何得到(-5),因为回复的日期是从今天起5天过去了

这是计算给定日期的正确方法吗


认为你所做的是正确的:你想计算两个日期之间的差异(天数)。差值不能小于零

虽然您的回复日期已经过去,但仍有5天的差异

所以,一切都很好——这是正确的方法

编辑: 如果希望结果为负值,请尝试以下操作:

var today = new Date();
var date_to_reply = new Date('2012-10-15');
var timeinmilisec = date_to_reply.getTime() - today.getTime();
console.log( Math.ceil(timeinmilisec / (1000 * 60 * 60 * 24)) );

请记住,您需要
Math.ceil
最终结果,而不是使用
Math.floor()

将其四舍五入。如果您希望值为负值(表示
date\u to\u reply
是过去的),您应该从当前日期中减去过去的日期:
date\u to\u reply.getTime()-today.getTime()


检查计算更多不同结果的方法。

如果交换日期顺序,将得到所需的负数

更好的是,您可以编写一个函数来实现这一点

它可以从第二个参数中减去第一个参数

第二个参数可以默认为今天

function diffDates(dateOne, dateTwo) {
    if (typeof dateTwo === 'undefined') {
        dateTwo = new Date();
    }
    return dateOne.getTime() - dateTwo.getTime();
}
最好让函数以数字而不是日期操作


那会更灵活,但我现在正在iPad上打字

这很明显,因为今天的日期比以前的日期长。所以要么你自己把它变成负片,要么用这个

var timeinmilisec = date_to_reply.getTime()-today.getTime();