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_Momentjs - Fatal编程技术网

时刻JavaScript-获取两个日期之间的差异

时刻JavaScript-获取两个日期之间的差异,javascript,date,momentjs,Javascript,Date,Momentjs,我试图在moment.js中获取今天日期和目的地日期之间的日期差异,下面是我要做的: var now = moment().format('DD/MM/YYYY HH:mm:ss'); var then = moment("15/09/2017 14:20:30").format('DD/MM/YYYY HH:mm:ss'); //here i try the difference var diffTime = moment.utc(moment(now).diff(moment(then)))

我试图在moment.js中获取今天日期和目的地日期之间的日期差异,下面是我要做的:

var now = moment().format('DD/MM/YYYY HH:mm:ss');
var then = moment("15/09/2017 14:20:30").format('DD/MM/YYYY HH:mm:ss');
//here i try the difference
var diffTime = moment.utc(moment(now).diff(moment(then)));

console.log("differenza per countdown "+diffTime);

console.log返回我“无效日期”,但如果我使用now作为“then”,它将返回我0(这是正确的),我如何才能创建一个正确格式化的数据?

为什么要将该时刻格式化为字符串,然后再对其进行解析?这样做没有意义

在差异上使用moment.duration:

var now=moment();
var-then=力矩(“2017年9月15日14:20:30”,“年月日HH:MM:ss”);
//在这里,我尝试不同
var diffTime=瞬间持续时间(然后是.diff(现在));
console.log(“每次倒计时的差异”+diffTime);
log(“人性化:+diffTime.personalize(true));
console.log(diffTime.days()+“/”+diffTime.months()+“/”+diffTime.years()+“+diffTime.hours()+”:“+diffTime.minutes()+”:“+diffTime.seconds())

为什么要将瞬间格式化为字符串,然后再解析它?这样做没有意义

在差异上使用moment.duration:

var now=moment();
var-then=力矩(“2017年9月15日14:20:30”,“年月日HH:MM:ss”);
//在这里,我尝试不同
var diffTime=瞬间持续时间(然后是.diff(现在));
console.log(“每次倒计时的差异”+diffTime);
log(“人性化:+diffTime.personalize(true));
console.log(diffTime.days()+“/”+diffTime.months()+“/”+diffTime.years()+“+diffTime.hours()+”:“+diffTime.minutes()+”:“+diffTime.seconds())

您也可以使用
Date.parse()
将日期转换为毫秒,然后查找差异。

您也可以使用
Date.parse()
将日期转换为毫秒,然后查找差异。

您的日期格式不是标准格式,在这种情况下,显式地将其指定为第二个参数,否则在不同的浏览器中解析将失败

moment("15/09/2017 14:20:30", 'DD/MM/YYYY HH:mm:ss')
答:是的,除非中间有其他逻辑,否则转换为字符串并将其解析回最新状态是没有价值的

window.onload=function(){
var now=moment().format('DD/MM/YYYY HH:MM:ss');
var-then=力矩(“2017年9月15日14:20:30”,“DD/MM/YYYY HH:MM:ss”)。格式(“DD/MM/YYYY HH:MM:ss”);
//在这里,我尝试不同
var diffTime=矩.utc(矩(现在是'DD/MM/YYYY HH:MM:ss').diff(矩(然后是'DD/MM/YYYY HH:MM:ss'));
console.log(“每次倒计时的差异”+diffTime);
}

您的日期格式不是标准格式,在这种情况下,请明确将其指定为第二个参数,否则在不同的浏览器中解析将失败

moment("15/09/2017 14:20:30", 'DD/MM/YYYY HH:mm:ss')
答:是的,除非中间有其他逻辑,否则转换为字符串并将其解析回最新状态是没有价值的

window.onload=function(){
var now=moment().format('DD/MM/YYYY HH:MM:ss');
var-then=力矩(“2017年9月15日14:20:30”,“DD/MM/YYYY HH:MM:ss”)。格式(“DD/MM/YYYY HH:MM:ss”);
//在这里,我尝试不同
var diffTime=矩.utc(矩(现在是'DD/MM/YYYY HH:MM:ss').diff(矩(然后是'DD/MM/YYYY HH:MM:ss'));
console.log(“每次倒计时的差异”+diffTime);
}

似乎合法,但为什么返回负数?负数
NaN
不是一个数字,如果你引用它的话。对我来说,结果是NaN,但日期解析可能会因浏览器而异,你可以添加断点并检查每个步骤中的值。似乎是合法的,但为什么返回负数?负数<代码>NaN
不是一个数字,如果你是指它的话。对我来说,结果是NaN,但日期解析可能因浏览器而异,你可以在每个步骤中添加断点并检查值。酷!但最后一件事,人性化返回我7天,但如果我想在DD/MM/YYYY HH:MM:ss格式中显示差异,我不确定您将如何在这种格式中显示差异。如果你想有天、月、年。。。不同的是,你可以用人性化来代替。我添加了一些东西,也许这就是你需要的@PdsInkcool!但最后一件事,人性化返回我7天,但如果我想在DD/MM/YYYY HH:MM:ss格式中显示差异,我不确定您将如何在这种格式中显示差异。如果你想有天、月、年。。。不同的是,你可以用人性化来代替。我添加了一些东西,也许这就是@PdsInk所需要的