0

例如,我想测试时间(此处为自定义变量)是否在 1345:59 - 1400:00 Hrs 之间,我不确定这是否是正确的方法。

有没有办法可以为测试条件应用范围。如果当前时间在此范围之间,则就像它一样,否则不是。

请让我知道 XSLT 1.0 中是否有任何功能

<xsl:when test="(($curHour = '13' and $curMin &gt;= '45' and $curMin &lt;= '59' ) or ($curHour = '14' and $curMin &gt;= '00' and $curMin &lt;= '30' ))">

谢谢!

4

2 回答 2

0

如果你得到的已经被分成小时和分钟,你可以这样做:

<xsl:variable name="minutes" select="60 * $curHour + $curMin" />
<xsl:choose>
    <xsl:when test="826 &lt;= $minutes and $minutes &lt; 840">
...

当两个变量给出的时间在 13:46(含)和 14:00(不含)之间时,返回 true。


编辑:

如果没有,那么您可以通过直接从 $curTime 参数计算 $minutes 变量来简化流程,如下所示:

<xsl:variable name="minutes" select="60 * substring($curTime,12,2) + substring($curTime,15,2)" />

(根据您在评论中显示的内容)。

于 2015-02-19T15:23:35.380 回答
0

最简单的方法是将整个HHmmss时间值视为一个数字,例如

<xsl:variable name="timeNum" select="number(concat(substring($curTime, 12, 2),
         substring($curTime, 15, 2), substring($curTime, 18, 2))" />

(从您的评论中获取的偏移量,与 ISO8601 时间戳格式一致YYYY-MM-DDTHH:mm:ssZ)。然后可以直接将这个数字与目标时间进行比较

<xsl:when test="$timeNum &gt; 134559 and $timeNum &lt;= 140000">
于 2015-02-19T16:18:04.133 回答