2010-02-23 12 views

Odpowiedz

30

Pójdę przy założeniu, że masz na myśli Unix sygnatury czasowe:

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

Dzięki za odpowiedź, faktycznie miałem na myśli znaczniki czasu Javascript. javascript timestamp = znaczniki czasowe unix * 1000 ponieważ znacznik czasu javascript to liczba ms od 1 stycznia 1970 00:00:00 UTC – rmk

+1

Zmodyfikowałem to dla moich celów, które obejmowały dodawanie roku, miesiąca i dnia. Dwie niespodzianki, na które napotkałem, to to, że chcesz dt.getDate() zamiast dt.getDay() (getDay zwraca dzień tygodnia); i że dt.getYear() zwraca to, co zwykle uważamy za rok (np. 2011) w IE 6, ale zwraca rok - 1900 w innych testowanych przeglądarkach (Chrome, Opera, Firefox). Po prostu coś, o czym należy pamiętać. –

5

ten wyświetli aktualny czas w formacie prosiłeś (HH:MM:SS)

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

Krótki i słodki. Dzięki! –

+0

Dostaję coś jeszcze dłużej: 20:07:30 GMT + 0100 (czas środkowoeuropejski standardowy) – Jeffz

30

Oto funkcja, która zapewnia elastyczne formatowanie daty w UTC. Przyjmuje ciąg formacie zbliżonym do tego z SimpleDateFormat 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); 
     } 
    }); 
} 

mógł go używać tak:

formatDate(new Date(timestamp), '%H:%m:%s'); 
Powiązane problemy