我有一定的持续时间值(endDate - startDate =持续时间,以毫秒为单位),我需要以这种格式获得时差:
0年5个月3天......
我需要数学公式,可以帮助我从该持续时间中提取年数/月/日/小时/分钟/秒。
我正在使用XSLT 1.0并且无法使用任何XPath2.0日期不同。所以我需要自己编写这个函数。
答案 0 :(得分: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天,但这有点不准确。