0

我有一个特定的持续时间值(endDate - startDate = 持续时间,以毫秒为单位),我需要以这种格式获取时间差:

0年5个月3天...

我需要可以帮助我从该持续时间中提取年/月/日/小时/分钟/秒数的数学公式。

我正在使用 XSLT 1.0 并且不能使用任何 XPath2.0 日期函数。所以我需要自己编写函数。

4

1 回答 1

1

下降到几天很简单。

tmp = time in milliseconds
milliseconds = tmp mod 1000
tmp = floor(tmp / 1000)
seconds = tmp mod 60
tmp = floor(tmp / 60)
minutes = tmp mod 60
tmp = floor(tmp / 60)
hours = tmp mod 24
tmp = floor(tmp / 24)
days = tmp

这是以您重复分配给同一个变量的方式编写的,但您也可以在一个步骤中制定这个:

milliseconds = time mod 1000
seconds = floor(tmp / 1000) mod 60
minutes = floor(tmp / 60000) mod 60
hours = floor(tmp / 3600000) mod 24
days = floor(tmp / 86400000)

如果你想去几个月,你必须处理不同长度的月份。多年来一样。您可以假设一年有 365 天,但这有点不准确。

于 2013-10-01T19:01:01.073 回答