diff options
Diffstat (limited to 'app/assets/javascripts/lib/utils/datetime/date_format_utility.js')
-rw-r--r-- | app/assets/javascripts/lib/utils/datetime/date_format_utility.js | 40 |
1 files changed, 14 insertions, 26 deletions
diff --git a/app/assets/javascripts/lib/utils/datetime/date_format_utility.js b/app/assets/javascripts/lib/utils/datetime/date_format_utility.js index 04a82836f69..e1a57bf4589 100644 --- a/app/assets/javascripts/lib/utils/datetime/date_format_utility.js +++ b/app/assets/javascripts/lib/utils/datetime/date_format_utility.js @@ -162,16 +162,24 @@ export const formatDate = (datetime, format = 'mmm d, yyyy h:MMtt Z', utc = fals * @returns {string} */ export const formatTime = (milliseconds) => { - const remainingSeconds = Math.floor(milliseconds / 1000) % 60; - const remainingMinutes = Math.floor(milliseconds / 1000 / 60) % 60; - const remainingHours = Math.floor(milliseconds / 1000 / 60 / 60); + const seconds = Math.round(milliseconds / 1000); + const absSeconds = Math.abs(seconds); + + const remainingSeconds = Math.floor(absSeconds) % 60; + const remainingMinutes = Math.floor(absSeconds / 60) % 60; + const hours = Math.floor(absSeconds / 60 / 60); + let formattedTime = ''; - if (remainingHours < 10) formattedTime += '0'; - formattedTime += `${remainingHours}:`; + if (hours < 10) formattedTime += '0'; + formattedTime += `${hours}:`; if (remainingMinutes < 10) formattedTime += '0'; formattedTime += `${remainingMinutes}:`; if (remainingSeconds < 10) formattedTime += '0'; formattedTime += remainingSeconds; + + if (seconds < 0) { + return `-${formattedTime}`; + } return formattedTime; }; @@ -203,7 +211,7 @@ export const stringifyTime = (timeObject, fullNameFormat = false) => { const isNonZero = Boolean(unitValue); if (fullNameFormat && isNonZero) { - // Remove traling 's' if unit value is singular + // Remove trailing 's' if unit value is singular const formattedUnitName = unitValue > 1 ? unitName : unitName.replace(/s$/, ''); return `${memo} ${unitValue} ${formattedUnitName}`; } @@ -387,26 +395,6 @@ export const formatTimeAsSummary = ({ seconds, hours, days, minutes, weeks, mont return '-'; }; -export const durationTimeFormatted = (duration) => { - const date = new Date(duration * 1000); - - let hh = date.getUTCHours(); - let mm = date.getUTCMinutes(); - let ss = date.getSeconds(); - - if (hh < 10) { - hh = `0${hh}`; - } - if (mm < 10) { - mm = `0${mm}`; - } - if (ss < 10) { - ss = `0${ss}`; - } - - return `${hh}:${mm}:${ss}`; -}; - /** * Converts a numeric utc offset in seconds to +/- hours * ie -32400 => -9 hours |