在XSLT中将24小时时间转换为12小时时间

Caf*_*eek 4 xslt

转换小时似乎需要做很多工作......必须有一个更简单的方法.

  <xsl:variable name="hour12">
    <xsl:choose>
      <xsl:when test="$hour24 &lt; 0">
        <xsl:value-of select="12 + $hour24" />
      </xsl:when>
      <xsl:when test="$hour24 = 0">
        <xsl:value-of select="12" />
      </xsl:when>
      <xsl:when test="$hour24 = 12">
        <xsl:value-of select="$hour24" />
      </xsl:when>
      <xsl:when test="$hour24 &gt; 12">
        <xsl:value-of select="$hour24 - 12" />
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="$hour24" />
      </xsl:otherwise>
    </xsl:choose>
  </xsl:variable>
Run Code Online (Sandbox Code Playgroud)

有什么建议?

Caf*_*eek 6

哦...我喜欢布尔值等于0或1.它让生活变得如此简单......

<xsl:variable name="hour12">
    <xsl:value-of select="$hour24 - (12 * ($hour24 > 12)) + (12 * ($hour24 = 0))" />`
</xsl:variable>
Run Code Online (Sandbox Code Playgroud)

并为a/p标识符

<xsl:variable name="ap">
    <xsl:value-of select="substring('ap', 1 + ($hour24 >= 12), 1)" />
</xsl:variable>
Run Code Online (Sandbox Code Playgroud)