2016-10-10 122 views
1

我正在構建一個web應用程序並正確顯示列表中的項目,我將附加到每個項目的時間戳轉換爲可讀格式。時間戳轉換:獲取日期,日期,小時,分鐘等,但不創建「新日期()」

例子:1475842129770成爲Friday, 07.09.2016

爲了創建這個字符串我使用的是標準的通過創建一個新的日期,對象,然後使用getDate()getMonth()等功能的JavaScript方式。

我的代碼:

此轉換時間戳DD.MM.YYYY

function convertTimestampToReadable(timestamp) { 
     var t = new Date(timestamp), 
      d = t.getDate(), 
      m = t.getMonth(), 
      y = t.getFullYear(); 
     return ((d<=9)?("0"+d):d)+"."+((m<=9)?("0"+m):m)+"."+y; 
    } 

這一個返回星期(忽略了德國的日期名):

function getDayOfTheWeek(timestamp) { 
     var t = new Date(timestamp); 
     switch (t.getDay()) { 
      case 0: 
       return "Sonntag"; 
       break; 
      case 1: 
       return "Montag"; 
       break; 
      case 2: 
       return "Dienstag"; 
       break; 
      case 3: 
       return "Mittwoch"; 
       break; 
      case 4: 
       return "Donnerstag"; 
       break; 
      case 5: 
       return "Freitag"; 
       break; 
      case 6: 
       return "Samstag"; 
       break; 
     } 
    } 

我的問題:

是否有任何shor ter /更快的方式來獲得這些時間戳屬性? 特別是我有興趣,如果有沒有創建一個日期對象的方式,從而使一些神奇的時間戳本身。

感謝您的輸入! :)

+0

去看一下一個喬達時間http://www.joda.org/joda-time/ – ZaoTaoBao

+1

你*能*。然而,它會比創建一個Date對象更糟糕。 – Phylogenesis

+0

你不需要魔法,你需要數學... – Teemu

回答

1

你可以使用一個數組中DayNames中

function getDayOfTheWeek(timestamp) { 
    var days = ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]; 
    return days[(new Date(timestamp)).getDay()]; 
} 
+1

謝謝,這比我的解決方案好多了! –

相關問題