2010-02-23 16 views

Respuesta

30

Voy a ir con la suposición de que quieres decir Unix marcas de tiempo:

var formatTime = function(unixTimestamp) { 
    var dt = new Date(unixTimestamp * 1000); 

    var hours = dt.getHours(); 
    var minutes = dt.getMinutes(); 
    var seconds = dt.getSeconds(); 

    // the above dt.get...() functions return a single digit 
    // so I prepend the zero here when needed 
    if (hours < 10) 
    hours = '0' + hours; 

    if (minutes < 10) 
    minutes = '0' + minutes; 

    if (seconds < 10) 
    seconds = '0' + seconds; 

    return hours + ":" + minutes + ":" + seconds; 
}  

var formattedTime = formatTime(1266272460); 
document.write(formattedTime); 
+2

Gracias por la respuesta, en realidad me refería a las marcas de tiempo de Javascript. javascript timestamp = marcas de tiempo unix * 1000 porque la marca de tiempo de javascript es el número de ms desde el 1 de enero de 1970 00:00:00 UTC – rmk

+1

Modifiqué esto para mis propósitos, que incluía agregar un año, mes y día. Dos sorpresas que encontré fueron que quieres dt.getDate() en lugar de dt.getDay() (getDay devuelve el día de la semana); y que dt.getYear() devuelve lo que normalmente consideramos como el año (por ejemplo, 2011) en IE 6, pero devuelve el año - 1900 en los otros navegadores que probé (Chrome, Opera, Firefox). Solo algo de lo que debes estar consciente. –

5

Esto mostrará la hora actual en el formato que usted pidió (HH:MM:SS)

function dostuff() 
{ 
var item = new Date(); 
alert(item.toTimeString()); 
} 
+0

Corto y dulce. ¡Gracias! –

+0

Recibo algo más de tiempo: 20:07:30 GMT + 0100 (hora estándar de Europa Central) – Jeffz

30

Aquí es una función que proporciona un formato flexible de una fecha en UTC. Se acepta una cadena de formato similar a la de SimpleDateFormat de Java:

function formatDate(date, fmt) { 
    function pad(value) { 
     return (value.toString().length < 2) ? '0' + value : value; 
    } 
    return fmt.replace(/%([a-zA-Z])/g, function (_, fmtCode) { 
     switch (fmtCode) { 
     case 'Y': 
      return date.getUTCFullYear(); 
     case 'M': 
      return pad(date.getUTCMonth() + 1); 
     case 'd': 
      return pad(date.getUTCDate()); 
     case 'H': 
      return pad(date.getUTCHours()); 
     case 'm': 
      return pad(date.getUTCMinutes()); 
     case 's': 
      return pad(date.getUTCSeconds()); 
     default: 
      throw new Error('Unsupported format code: ' + fmtCode); 
     } 
    }); 
} 

Usted puede utilizar de esta manera:

formatDate(new Date(timestamp), '%H:%m:%s'); 
Cuestiones relacionadas