now from javascript time

from - javascript timer countdown



Convierte cadena HH: MM: SS a segundos solo en javascript (11)

Tengo un requisito similar al siguiente: ¿ Convertir el tiempo en formato HH: MM: SS a segundos solamente?

pero en javascript He visto muchos ejemplos de convertir segundos en diferentes formatos pero no HH: MM: SS en segundos. Cualquier ayuda sería apreciada.


Convierta hh:mm:ss string en segundos en una línea. También se permite h:m:s formato h:m:s y mm:ss , m:s etc.

''08:45:20''.split('':'').reverse().reduce((prev, curr, i) => prev + curr*Math.pow(60, i), 0)


Dado que la función getTime del objeto Date obtiene los milisegundos desde 1970/01/01, podemos hacer esto:

var time = ''12:23:00''; var seconds = new Date(''1970-01-01T'' + time + ''Z'').getTime() / 1000;


El método estático de Javascript Date.UTC() hace el truco:

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; }


Esta función maneja "HH: MM: SS" así como "MM: SS" o "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; }


Esta función también funciona para 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]) } }


Esto se puede hacer con bastante elasticidad con lo siguiente:

''01:02:03''.split('':'').reduce((acc,time) => (60 * acc) + +time);

Esto se debe a que cada unidad de tiempo dentro de las horas, minutos y segundos es un múltiplo de 60 veces mayor que la unidad más pequeña. El tiempo se divide en minutos de hora y segundos, luego se reduce a segundos al usar el valor acumulado de las unidades más altas multiplicado por 60 a medida que atraviesa cada unidad.

El +time se usa para asignar el tiempo a un número.

Básicamente termina haciendo: (60 * ((60 * HHHH) + MM)) + SS


Prueba esto:

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);


Puede hacerlo de forma dinámica, en caso de que encuentre no solo: HH: mm: ss, sino también, mm: ss, o incluso ss solo.

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);


tratar

time="12:12:12"; tt=time.split(":"); sec=tt[0]*3600+tt[1]*60+tt[2]*1;


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>


new Date(moment(''23:04:33'', "HH:mm")).getTime()

Salida: 1499755980000 (en milisegundo) (1499755980000/1000) (en segundo lugar)

Nota: este resultado calcula la diferencia desde 1970-01-01 12: 0: 0 hasta ahora y tenemos que implementar el momento.js