xsl-list
[Top] [All Lists]

Re: [xsl] difference between an integer and current-dateTime()

2020-03-31 03:04:23
Am 31.03.2020 um 07:01 schrieb Mukul Gandhi 
gandhi(_dot_)mukul(_at_)gmail(_dot_)com:
On Mon, Mar 30, 2020 at 5:31 PM Michael Kay mike(_at_)saxonica(_dot_)com
<mailto:mike(_at_)saxonica(_dot_)com> 
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com
<mailto:xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com>> wrote:

I now have following XSLT stylesheet with me,

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                          xmlns:xs="http://www.w3.org/2001/XMLSchema";
                          xmlns:fn0="http://fns0";
                          exclude-result-prefixes="xs fn0"
                          version="3.0">

     <xsl:output method="text"/>

     <xsl:param name="secsSinceEpoch" as="xs:integer"/>

     <xsl:template match="/">
        <xsl:variable name="epochDateTime"
select="xs:dateTime('1970-01-01T00:00:00Z') +

          xs:dayTimeDuration('PT' || $secsSinceEpoch || 'S')"

as="xs:dateTime"/>
        <xsl:variable name="diffDTduration" select="current-dateTime() -
$epochDateTime" as="xs:dayTimeDuration"/>
        <xsl:value-of
select="fn0:secsFromdiffDTduration($diffDTduration) div 60"/>
     </xsl:template>

     <xsl:function name="fn0:secsFromdiffDTduration" as="xs:decimal">
        <xsl:param name="diffDTduration" as="xs:dayTimeDuration"/>

        <xsl:variable name="totalSecs" select="$diffDTduration div
xs:dayTimeDuration('PT1S')" />
        <xsl:sequence select="$totalSecs"/>
     </xsl:function>

</xsl:stylesheet>

This gives me an output,

F:\>java -classpath SaxonHE10-0J\saxon-he-10.0.jar
net.sf.saxon.Transform -s:trf1.xsl -xsl:trf1.xsl secsSinceEpoch=1585633856
-53.430133333333333333333

I was expecting <xsl:value-of
select="fn0:secsFromdiffDTduration($diffDTduration) div 60"/> to return
me about 1 hr. But that isn't. Any thoughts?


In general, if you want the difference in seconds, I would suggest to use
  div xs:dayTimeDuration('PT1S')
for minutes
  div xs:dayTimeDuration('PT1M')
or for hours
  div xs:dayTimeDuration('PT1H')

As for the values, which dateTime is 1585633856?
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--

<Prev in Thread] Current Thread [Next in Thread>