我需要使用片刻JS来计算精确的时间差异。
我的JS代码是:
var a = moment(from_url);
a.format('DD/MM/YYYY hh:mm:ss');
var b = moment(to_url);
b.format('DD/MM/YYYY hh:mm:ss');
console.log("from URL")
var from_hours = from_url()
console.log(b.diff(a, 'minutes')) //
console.log(b.diff(a, 'hours')) //
console.log(b.diff(a, 'days')) //
console.log(b.diff(a, 'weeks')) //
console.log("Time interval: "+b.diff(a, 'days')+ " days "+ b.diff(a, 'hours') +" hours " +b.diff(a, 'minutes')+" mintes");
现在,
from_url = '2016-05-03T08:00:00';
to_url = '2016-05-04T09:00:00';
现在,对于这些时间,我得到输出为:
Time interval: 1 days 25 hours 1500 minutes
它将所有内容转换为日期(1天~25小时)。
然而,我想要的输出是:1天1小时0分。
任何人都可以帮助我吗? 我是JS的新手,无法解决这个问题。 感谢。
答案 0 :(得分:1)
要解析字符串,您应该始终告诉解析器您提供的格式。 Moment.js可以提供帮助,但您也可以使用自己的小功能。
为了获得天数,小时数等的差异,您只需从另一个日期中减去一个日期即可获得毫秒数,然后将其转换为您想要的格式。
请注意,日期算术并不简单,有许多规则会根据自定义或管理规则进行更改。此外,当涉及夏令时边界时,有些日子长达23小时,有些日子为25小时。
以下是一种不考虑夏令时的简单方法。希望评论足够,使用输出格式来获得你需要的任何东西。
/[A-Z]{1,2}[1-9]{0,3}/g
/([^0-9])[A-Z]{1,2}[0-9]{1,3}/g