2015-12-24 3 views
1

Мы работаем с миллисекундным преобразованием продолжительности времени, которое сохраняется в базе данных (Формат: мм: ss). Значение продолжительности мы можем получить с помощью команды # bignews.Control_CountdownDuration #.Конвертация минут, секунд в миллисекунды

<div class="slideBox" data-duration="#bignews.Control_CountdownDuration#"> 

Текущее значение (мм: ss) недостаточно для правильной работы с продолжительностью данных. Может ли кто-нибудь помочь мне выполнить задачу?

ответ

2

А занятие createTimeSpan() и dateDiff() выполнит эту работу.
Input здесь идет в переменные minutes и seconds:

<cfset cmpBase    = createTimeSpan(0, 0, 0, 0)> 
<cfset cmpValue    = createTimeSpan(0, 0, minutes, seconds)> 
<cfset diffInSeconds  = dateDiff("s", cmpBase, cmpValue)> 
<cfset diffInMilliseconds = (diffInSeconds * 1000)> 

Если предположить, что исходное значение хранится в виде строки, как mm:ss, это было бы:

<cfset minutes = getToken(bignews.Control_CountdownDuration, 1, ":")> 
<cfset seconds = getToken(bignews.Control_CountdownDuration, 2, ":")> 
<cfset cmpValue = createTimeSpan(0, 0, minutes, seconds)> 

<cfset cmpBase    = createTimeSpan(0, 0, 0, 0)> 
<cfset diffInSeconds  = dateDiff("s", cmpBase, cmpValue)> 
<cfset diffInMilliseconds = (diffInSeconds * 1000)> 

    <div class="slideBox" data-duration="#diffInMilliseconds#"> 

(Validation опущены для удобства чтения.)

На боковой ноте: вы, вероятно, должны работать с общим количеством секунд (см. Переменную diffInSeconds), так как в любом случае вы не получаете миллисекундной точности.

+0

Спасибо Alex ... Проблема решена. Отличный результат. –

+4

Выглядит намного сложнее, чем необходимо. Для меня проблема такая же простая, как разбиение строки на минуты и секунды, умножение минут на 60, добавление секунд и muliplying на 1000. –

+0

Я использовал вторую часть кода своего ответа для решения проблемы. –