HH : MM : SS 문자열을 자바 스크립트에서만 초로 변환
비슷한 요구 사항이 있습니다. HH : MM : SS 형식의 시간을 초로 만 변환합니까?
그러나 자바 스크립트에서. 초를 다른 형식으로 변환하는 많은 예를 보았지만 HH : MM : SS를 초로 변환하지 않았습니다. 어떤 도움을 주시면 감사하겠습니다.
이 시도:
var hms = '02:04:33';   // your input string
var a = hms.split(':'); // split it at the colons
// minutes are worth 60 seconds. Hours are worth 60 minutes.
var seconds = (+a[0]) * 60 * 60 + (+a[1]) * 60 + (+a[2]); 
console.log(seconds);
이 함수는 "HH : MM : SS"와 "MM : SS"또는 "SS"를 처리합니다.
function hmsToSecondsOnly(str) {
    var p = str.split(':'),
        s = 0, m = 1;
    while (p.length > 0) {
        s += m * parseInt(p.pop(), 10);
        m *= 60;
    }
    return s;
}
이것은 다음을 통해 매우 탄력적으로 수행 할 수 있습니다.
'01:02:03'.split(':').reduce((acc,time) => (60 * acc) + +time);
이는 시간, 분 및 초 내의 각 시간 단위가 작은 단위보다 60의 배수이기 때문입니다. 시간은시 분 및 초 구성 요소로 분할 된 다음 각 단위를 통과 할 때 더 높은 단위의 누적 값에 60을 곱하여 초로 줄입니다.
은 +time숫자로 시간을 주조하는 데 사용됩니다.
기본적으로 다음을 수행합니다. (60 * ((60 * HHHH) + MM)) + SS
초만 지나면 결과는 문자열이되므로 전체 결과를 int로 캐스팅 할 수 있습니다.
+('03'.split(':').reduce((acc,time) => (60 * acc) + +time));
hh:mm:ss한 줄에서 문자열을 초로 변환 합니다. 또한 허용 h:m:s형식과 mm:ss, m:s등
'08:45:20'.split(':').reverse().reduce((prev, curr, i) => prev + curr*Math.pow(60, i), 0)
Date 객체 의 getTime 함수는 1970/01/01 이후의 밀리 초를 가져 오므로 다음과 같이 할 수 있습니다.
var time = '12:23:00';
var seconds = new Date('1970-01-01T' + time + 'Z').getTime() / 1000;
시험
time="12:12:12";
tt=time.split(":");
sec=tt[0]*3600+tt[1]*60+tt[2]*1;
자바 스크립트의 정적 메서드 Date.UTC()는 트릭을 수행합니다.
alert(getSeconds('00:22:17'));
function getSeconds(time)
{
    var ts = time.split(':');
    return Date.UTC(1970, 0, 1, ts[0], ts[1], ts[2]) / 1000;
}
new Date(moment('23:04:33', "HH:mm")).getTime()
출력 : 1499755980000 (밀리 초) (1499755980000/1000) (초)
참고 :이 출력은 1970-01-01 12 : 0 : 0에서 현재까지의 diff를 계산하며 moment.js를 구현해야합니다.
이 기능은 MM : SS에서도 작동합니다.
const convertTime = (hms) => {
        if (hms.length <3){
         return hms
        } else if (hms.length <6){
          const a = hms.split(':')
          return hms = (+a[0]) * 60 + (+a[1])
        } else {
          const a = hms.split(':')
          return hms = (+a[0]) * 60 * 60 + (+a[1]) * 60 + (+a[2])
        }
      }function parsehhmmsst(arg) {
	var result = 0, arr = arg.split(':')
	if (arr[0] < 12) {
		result = arr[0] * 3600 // hours
	}
	result += arr[1] * 60 // minutes
	result += parseInt(arr[2]) // seconds
	if (arg.indexOf('P') > -1) {  // 8:00 PM > 8:00 AM
		result += 43200
	}
	return result
}
$('body').append(parsehhmmsst('12:00:00 AM') + '<br>')
$('body').append(parsehhmmsst('1:00:00 AM') + '<br>')
$('body').append(parsehhmmsst('2:00:00 AM') + '<br>')
$('body').append(parsehhmmsst('3:00:00 AM') + '<br>')
$('body').append(parsehhmmsst('4:00:00 AM') + '<br>')
$('body').append(parsehhmmsst('5:00:00 AM') + '<br>')
$('body').append(parsehhmmsst('6:00:00 AM') + '<br>')
$('body').append(parsehhmmsst('7:00:00 AM') + '<br>')
$('body').append(parsehhmmsst('8:00:00 AM') + '<br>')
$('body').append(parsehhmmsst('9:00:00 AM') + '<br>')
$('body').append(parsehhmmsst('10:00:00 AM') + '<br>')
$('body').append(parsehhmmsst('11:00:00 AM') + '<br>')
$('body').append(parsehhmmsst('12:00:00 PM') + '<br>')
$('body').append(parsehhmmsst('1:00:00 PM') + '<br>')
$('body').append(parsehhmmsst('2:00:00 PM') + '<br>')
$('body').append(parsehhmmsst('3:00:00 PM') + '<br>')
$('body').append(parsehhmmsst('4:00:00 PM') + '<br>')
$('body').append(parsehhmmsst('5:00:00 PM') + '<br>')
$('body').append(parsehhmmsst('6:00:00 PM') + '<br>')
$('body').append(parsehhmmsst('7:00:00 PM') + '<br>')
$('body').append(parsehhmmsst('8:00:00 PM') + '<br>')
$('body').append(parsehhmmsst('9:00:00 PM') + '<br>')
$('body').append(parsehhmmsst('10:00:00 PM') + '<br>')
$('body').append(parsehhmmsst('11:00:00 PM') + '<br>')<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>이를 동적으로 수행 할 수 있습니다. HH : mm : ss뿐만 아니라 mm : ss 또는 ss 만 발생하는 경우에도 마찬가지입니다.
var str = '12:99:07';
var times = str.split(":");
times.reverse();
var x = times.length, y = 0, z;
for (var i = 0; i < x; i++) {
    z = times[i] * Math.pow(60, i);
    y += z;
}
console.log(y);
Here is maybe a bit more readable form on the original approved answer.
const getSeconds = (hms: string) : number => {
  const [hours, minutes, seconds] = hms.split(':');
  return (+hours) * 60 * 60 + (+minutes) * 60 + (+seconds);
};
참고URL : https://stackoverflow.com/questions/9640266/convert-hhmmss-string-to-seconds-only-in-javascript
'Program Tip' 카테고리의 다른 글
| null의 'addEventListener'속성을 읽을 수 없습니다. (0) | 2020.10.22 | 
|---|---|
| Magento에서 매장 정보를 얻는 방법은 무엇입니까? (0) | 2020.10.22 | 
| 구문 분석 중 Python 예기치 않은 EOF (0) | 2020.10.21 | 
| Dart는 열거를 지원합니까? (0) | 2020.10.21 | 
| WPF MVVM 직선 XAML 창보기가 아닌 ContentControl + DataTemplate보기를 사용하는 이유는 무엇입니까? (0) | 2020.10.21 |