0

タイムスタンプを生成しようとしていますが、浮動小数点数が返されます:

 <xsl:variable name="timestamp"  select="seconds-from-dateTime(current-dateTime())-seconds-from-dateTime(xs:dateTime('1970-01-01T00:00:00'))"/>

次のように sth を出力します。40.638

ここで説明する関数を使用しています

4

1 に答える 1

1

リンク先のページから:

引数のローカライズされた値の秒コンポーネントを表す 10 進数を返します

2 番目の値の秒コンポーネントは 0 で、最初の値の秒コンポーネントは [0, 60) の範囲の値であるため、結果は常に 0 から 60 の間になります。これを試しましたか:

<xsl:variable name="duration" 
      select="current-dateTime() - xs:dateTime('1970-01-01T00:00:00')" />
<xsl:variable name="timestamp"
              select="floor(days-from-duration($duration) * 3600 * 24 + 
                      hours-from-duration($duration) * 3600 + 
                      minutes-from-duration($duration) * 60 + 
                      seconds-from-duration($duration))" />
于 2013-01-30T12:39:51.177 に答える