Добавьте Duration к DateTime в XSLT - PullRequest
4 голосов
/ 11 марта 2011

В 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_day, "T", $begin_time_hour, ":", $begin_time_minutes, ":", $begin_time_seconds)'/>
--> $begin = 2011-03-10T00:20:00

И на время:

<xsl:variable name="duration" select='concat("PT", $dur_hour, ":", $dur_minutes, ":", $dur_seconds)'/>
--> $duration = PT00:15:00

Как мне добавить продолжительность к DateTime , чтобы узнать конец (в формате DateTime)?

Я уже думал о добавлении отдельных компонентов, но это потребовало бымного возиться с модулями, например, если я прибавил 15 минут к 23:50, а затем должен был соответственно скорректировать день и т. д.

Ответы [ 2 ]

6 голосов
/ 11 марта 2011

Хорошо, теперь я нашел функцию , которая не была указана в справочнике функций, который я использовал ранее.

add-dayTimeDuration-to-dateTime(xs:dateTime, xs:dayTimeDuration)

Это также можно записать, например, как:

xs:dateTime($begin) + xs:dayTimeDuration($duration)
0 голосов
/ 11 марта 2011

Только для полноты, есть также реализация http://www.exslt.org/date/functions/add/date.add.html

См. Аналогичный вопрос на xslt - вычитание дней

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...