我有两个时间戳,以毫秒为单位。我计算它们之间的持续时间,但结果也有毫秒值,但我只想要秒。
第一个时间戳,
1519077042063
第二个时间戳
1519077045841
XSLT后的结果
3.778
xs:dateTime(1519077045841)-xs:dateTime(1519077042063))
通缉结果
3
修改
以下是我如何根据时间戳计算dateTime。
<xsl:variable name="start" select='xs:dateTime("1970-01-01T00:00:00") + 1519077042063 * xs:dayTimeDuration("PT0.001S")'/>
<xsl:variable name="stop" select='xs:dateTime("1970-01-01T00:00:00") + 1519077045841 * xs:dayTimeDuration("PT0.001S")'/>
然后我计算从开始和停止的持续时间,即PT3.778S,我只想要3.可以这样做吗?
<xsl:value-of select="xs:dateTime($stop)-xs:dateTime($start))"/>
答案 0 :(得分:0)
我不知道如何直接根据xs:dateTime
显示的时间戳值创建xs:dateTime(1519077045841)-xs:dateTime(1519077042063)
,但如果减去两个xs:dateTime
,则会得到一个持续时间,然后,您可以提取seconds-from-duration
并在其上调用floor
函数:floor(seconds-from-duration($dateTime1 - $dateTime2))
。
所以编辑中的样本
<xsl:variable name="start" select='xs:dateTime("1970-01-01T00:00:00") + 1519077042063 * xs:dayTimeDuration("PT0.001S")'/>
<xsl:variable name="stop" select='xs:dateTime("1970-01-01T00:00:00") + 1519077045841 * xs:dayTimeDuration("PT0.001S")'/>
<xsl:value-of select="floor(seconds-from-duration($stop - $start))"/>