проблема группировки даты и времени в XSLT - PullRequest
3 голосов
/ 27 августа 2011

Я не могу разобраться с этим, любая помощь будет принята с благодарностью: у меня есть список узлов даты и времени, сгруппированных по дням (для каждой группы),

<xsl:for-each-group select="response/result/doc" 
group-by="functx:day-of-week(xs:dateTime(./date[@name='ds_startshow']))">

Это отлично работает, даты и время сгруппированы по дням недели.Проблема в том, что мне нужно включить несколько узлов даты и времени от следующего дня до текущего дня.Например: мне нужно включить субботу 0:15 в группу "пятница" (ранние часы принадлежат предыдущему дню).Таким образом, один день тянется до нескольких часов следующего утра.Как правило, новый день начинается в 2:00 вместо 0:00.Как бы я мог выполнить такую ​​группировку с помощью XSLT (2).Предположительно мне нужно написать функцию для решения этой проблемы?Нужно ли повторять по дням?Не уверен насчет наилучшей практики в данном конкретном случае.

1 Ответ

3 голосов
/ 27 августа 2011

То, что вы хотите сделать, это взять фактическое время и вычесть два часа, таким образом создавая виртуальную дневную границу в 02:00, а затем сгруппировать по ней.Это не проверено, но вы можете попробовать:

$x - xs:dayTimeDuration("PT2H")

, где $ x - фактическое время.В результате получается фактическое время минус 2 часа, которое вы затем можете использовать для группировки по.

Вы можете посмотреть на этот сайт , который я нашел путем поиска в Google для "арифметики даты xslt"и где я нашел синтаксис для xs:dayTimeDuration()

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