I received this requirement while working on Angular application and developing the two-factor authentication screen with SMS OTP.
This screen has the timer countdown to show remaining time in seconds (in mm:ss
format) to enable the button to resend OTP.
I found two different functions to format the seconds in hh:mm:ss
format.
In first method, you can manually perform the arithmetic operations to extract hours, minutes and seconds from given value.
Convert_Seconds_To_HHMMSS(seconds) { let hour = Math.floor(seconds / 3600); let minute = Math.floor((seconds % 3600) / 60); let second = seconds % 60; if(hour.toString().length === 1) { hour = `0${hour}`; } if(minute.toString().length === 1) { minute = `0${minute}`; } if(second.toString().length === 1) { second = `0${second}`; }; let timeFormatted = `${hour}-${minute}-${second}`; return timeFormatted; }
In second method, you can use one-liner solution using Date.toISOString()
function.
new Date(seconds * 1000).toISOString().substring(11, 16)
If the seconds value is less than 3600 (less than an hour) or you don't want t show the hours in formatted string, and only need to show minutes and seconds (mm:ss
),
then simply change the arguments for substring()
function to extract the required string part.
new Date(seconds * 1000).toISOString().substring(14, 19)
No comments:
Post a Comment