У меня есть проект, который я создаю в Coldfusion 10, и он почти готов, но мне просто нужно показать, сколько времени прошло с момента последнего обновления в канале XML. Я знаю, что это не должно быть слишком сложно, но я не могу понять это.
Проект подается XML-потоком из публикации, и из всех публикаций в ленте мне нужно выяснить, какая публикация является самой последней (они могут быть не в хронологическом порядке в ленте). Мне также нужно сравнить самую последнюю публикацию в ленте с текущим местным временем, которое является PDT, а публикации в ленте указаны по Гринвичу. Я уже проанализировал XML, а публикации фиксируются в переменной с именем «rssDate», а публикации имеют формат: {ts '2014-06-27 20:48:46'}.
Вот необходимые элементы разбиты
- Найти самую последнюю публикацию в XML-канале
- Преобразуйте самую последнюю публикацию (дата и время) из GMT в PDT и отобразите как отметку времени последнего обновления.
- Определите время, прошедшее с момента публикации самой последней публикации, и выведите его в виде цветного дисплея в зависимости от временных диапазонов (см. прилагаемый код вывода).
Цветной вывод времени с момента последнего обновления в зависимости от временного диапазона
<cfif timeDifference LT 1>
<cfset meterColor = "4bbd07">
<cfset colorName = "Green">
<cfset messageText = "Updated less than one hour ago">
<cfelseif timeDifference GTE 1 AND timeDifference LT 1.3>
<cfset meterColor = "64ff06">
<cfset colorName = "Lime">
<cfset messageText = "Updated less than one and a half hours ago">
<cfelseif timeDifference GTE 1.3 AND timeDifference LT 2>
<cfset meterColor = "fffc06">
<cfset colorName = "Yellow">
<cfset messageText = "Updated more than two hours ago">
<cfelseif timeDifference GTE 2 AND timeDifference LT 2.3>
<cfset meterColor = "fdae15">
<cfset colorName = "Orange">
<cfset messageText = "Updated more than two hours ago">
<cfelseif timeDifference GTE 2.3 AND timeDifference LT 3>
<cfset meterColor = "ff00fc">
<cfset colorName = "Pink">
<cfset messageText = "Updated more than two and a half hours ago">
<cfelseif timeDifference GTE 3>
<cfset meterColor = "fe0000">
<cfset colorName = "Red">
<cfset messageText = "Updated more than three hours ago">
</cfif>