1

我有一个纪元时间:x = 1383483902000

我想得到一个日期,如:dd-mm-yyyy 并希望在没有额外库的情况下做到这一点。

我尝试了几种方法,我的最后一种方法最终如下:

var date = new Date(Math.round(Number(x)));

但我得到了一个丑陋的东西,比如:sun nov 03 2013 14:05:02 GMT+01:00

4

2 回答 2

6

使用您的日期对象来提取/格式化您想要的部分:

var formattedDate = date.getUTCDate() + '-' + (date.getUTCMonth() + 1)+ '-' + date.getUTCFullYear()
于 2013-11-04T19:41:55.233 回答
1

下面的示例在处理纪元时间时使用日期对象的 UTC 方法(UTC 自纪元以来的毫秒数):

var formatDate = function formatDate(date) {            // function for reusability
        var d = date.getUTCDate().toString(),           // getUTCDate() returns 1 - 31
            m = (date.getUTCMonth() + 1).toString(),    // getUTCMonth() returns 0 - 11
            y = date.getUTCFullYear().toString(),       // getUTCFullYear() returns a 4-digit year
            formatted = '';
        if (d.length === 1) {                           // pad to two digits if needed
            d = '0' + d;
        }
        if (m.length === 1) {                           // pad to two digits if needed
            m = '0' + m;
        }
        formatted = d + '-' + m + '-' + y;              // concatenate for output
        return formatted;
    },
    x = 1383483902000,                                  // sample time in ms since epoch
    d = new Date(x),                                    // convert to date object
    f = formatDate(d);                                  // pass to formatDate function to get dd-mm-yyyy
console.log(f);                                         // log output to console for testing

您可以按原样在浏览器控制台中运行它。

于 2013-11-04T19:47:12.090 回答