1

我想使用 javascript 将UTC 时间值(例如 1367214805)转换为日期(以dd-mm-yyyy格式)。

例如,如果我们在 PHP 中使用...

<?php Date("d-m-Y",'1367214805'); ?>

...我们直接获取 dd-mm-yyyy 格式的日期。

javascript中有这样的功能吗?- 我在javascript中以各种方式尝试了Date(),但每次它都在打印当前日期和时间!

谢谢

4

5 回答 5

1

您可以使用toISOString方法并忽略T例如之后的所有内容

var isoDateStr = myDate.toISOString();
isoDateStr = isoDateStr.substring(0, isoDateStr.indexOf('T'));

这将为您提供标准的 UTC 日期格式yyyy-mm-dd。如果您需要将日期专门格式化为dd-mm-yyyy那么您可以获取该结果并切换值,即

isoDateStr = isoDateStr.split('-').reverse().join('-');
于 2013-04-29T11:01:16.010 回答
1

JavaScript 使用毫秒纪元,因此您需要将您的数字乘以 1000。

var t = 1367214805;
var d = new Date(t * 1000);

然后有一些.getUTCxxx方法可以获取您想要的字段,然后您只需零填充并连接即可获得所需的字符串。

function epochToDate(t) {
    function pad2(n) {
        return n > 9 ? n : '0' + n;
    }
    var d = new Date(t * 1000);
    var year = d.getUTCFullYear();
    var month = d.getUTCMonth() + 1;  // months start at zero
    var day = d.getUTCDate();

    return pad2(day) + '-' + pad2(month) + '-' + year;
}
于 2013-04-29T11:04:54.443 回答
1

看看Moments.js,你应该能够轻松地获得你想要的任何格式。

console.log(new Date());
console.log(moment().format("D-M-YY"));
console.log(moment(1367214805 * 1000).format("DD-MM-YY"));

jsfiddle

于 2013-04-29T11:16:16.740 回答
0

你可以试试这个:

myDate.toISOString().split('T')[0].split('-').reverse().join('-')
于 2013-04-29T11:09:52.917 回答
0

为什么不使用getUTCxxx()方法?

function formatUTC(time_UTC_in_milliseconds_since_epoch) {
    /*
     * author: WesternGun
     */
    var time = new Date(time_UTC_in_milliseconds_since_epoch);
    var formatted = time.getUTCFullYear() + "-" 
        + (time.getUTCMonth() + 1).toString() + "-" 
        + time.getUTCDate() + " " 
        + time.getUTCHours() + ":" 
        + time.getUTCMinutes() + ":" 
        + time.getUTCSeconds();
    return formatted;
}

记得给月份加1,因为返回值的范围getUTCMonth()0~11

根据您的意见,我们有:

formatUTC(1367214805 * 1000); // return "2013-4-29 5:53:25"

要将数字格式化为\d\d表格,只需创建另一个函数:

function normalizeNumber(input, toAdd) {
    if (parseInt(input) < 10) {
        return toAdd + input;
    } else {
        return input;
    }
}

normalizeNumber((time.getUTCMonth() + 1).toString(), "0")并像等一样使用它。

于 2018-09-03T12:51:05.260 回答