在XSLT中向DateTime添加持续时间
在XSLT中,我想将XML文档转换为另一个文档。旧文档中有一些日期和时间不太容易使用。例如:在XSLT中向DateTime添加持续时间,datetime,xslt,date,time,Datetime,Xslt,Date,Time,在XSLT中,我想将XML文档转换为另一个文档。旧文档中有一些日期和时间不太容易使用。例如: <foo date="20110310" time="002000" duration="001500"/> 现在,我提取了所有信息,并能够将这些信息转换为ISO 8601日期: <xsl:variable name="begin" select='concat($begin_date_year, "-", $begin_date_month, "-", $begin_date_
<foo date="20110310" time="002000" duration="001500"/>
现在,我提取了所有信息,并能够将这些信息转换为ISO 8601日期:
<xsl:variable name="begin" select='concat($begin_date_year, "-", $begin_date_month, "-", $begin_date_day, "T", $begin_time_hour, ":", $begin_time_minutes, ":", $begin_time_seconds)'/>
--> $begin = 2011-03-10T00:20:00
-->$begin=2011-03-10T00:20:00
在这段期间:
<xsl:variable name="duration" select='concat("PT", $dur_hour, ":", $dur_minutes, ":", $dur_seconds)'/>
--> $duration = PT00:15:00
-->$duration=PT00:15:00
如何将持续时间添加到DateTime以找出结束时间(以DateTime格式)
我已经考虑过添加单独的组件,但是这会涉及到大量的模操作,例如,如果我将15分钟添加到23:50,然后必须相应地调整一天,等等。好的,现在我没有在我以前使用的函数参考中列出
add-dayTimeDuration-to-dateTime(xs:dateTime, xs:dayTimeDuration)
这也可以写成,例如:
xs:dateTime($begin) + xs:dayTimeDuration($duration)
为了完整起见,上还有一个实现
请参见中的类似问题,即XPath 2.0,它通常是一个运算符,用于备份
xs:dateTime
和xs:dayTimeDuration
值上的“+
”运算符