使用片刻JS计算确切的时间差

时间:2016-05-10 00:09:11

标签: javascript timestamp momentjs unix-timestamp timestampdiff

我需要使用片刻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的新手,无法解决这个问题。 感谢。

1 个答案:

答案 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