时间戳转换:获取星期、日期、小时、分钟等,无需创建 "new Date()"

Timestamp conversion: Get day, date, hour, minutes, etc without creating a "new Date()"

我正在构建一个网络应用程序,为了正确显示列表中的项目,我正在将附加到每个项目的时间戳转换为可读格式。

示例:1475842129770 变为 Friday, 07.09.2016

为了创建这个字符串,我使用标准 javascript 方法创建一个新的日期对象,然后使用 getDate()getMonth() 等函数。

我的代码:

这会将时间戳转换为 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;
    }

这个 returns 星期几(忽略德国日名称):

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

我的问题:

是否有任何 shorter/faster 方法来获取这些时间戳属性? 我特别感兴趣是否有一种方法可以不创建日期对象,从而使时间戳数字本身变得神奇。

感谢您的意见! :)

您可以使用数组作为日期名称

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