Я новичок в xquery и xslt. Таким образом, я смог получить разницу во времени в переменной в этом формате, используя fn:current-datetime- xs:datetime()
.
Выход P11DT2H2M20.404S
Но теперь мой вопрос: есть ли какая-либо функция для расчета часов менее 24 часов или как я могу узнать, что их меньше 24 часов?
Я могу использовать подстроку после T, а затем сравнить с 24 часами, но хотел знать, есть ли лучший способ.
Чем это отличается от вашего предыдущего вопроса: stackoverflow.com/questions/71441366/… ??
Вы можете разделить одну продолжительность на другую, например. xs:dayTimeDuration('P11DT2H2M20.404S') div xs:dayTimeDuration('PT24H')
делится на 24 часа, и если этот результат меньше 1, то (исходная) продолжительность меньше 24 часов.
Спасибо большое. Это работает идеально
@Simran, см. ответ Майкла Кея, я упустил из виду операторы сравнения, определяемые для длительности, поэтому вам даже не нужно делить длительности, вы можете просто сравнить их.
Вы можете просто сделать
`if ($myDuration lt xs:dayTimeDuration('PT24H')) ...`
что кажется более прямым, чем решение Мартина.
XSLT 1.0 не имеет встроенного способа возврата текущей даты или времени. Некоторые процессоры поддерживают это как расширение, поэтому нам нужно знать, какой процессор вы используете, чтобы дать вам ответ XSLT.