2

我有一个运行良好的函数,用于从以 json 格式返回的 web 服务转换日期。网络服务以下列格式给出日期:

数据示例: json数据中的日期如下所示

\/Date(1373875200000)\/

当前功能:这是我当前拥有的功能

function HumanDate(date) {

    var jsondateString = date.substr(6);
    var current = new Date(parseInt(jsondateString));
    var month = current.getMonth() + 1;
    var day = current.getDate();
    var year = current.getFullYear();
    var hour = current.getHours();
    var minute = current.getMinutes();
    var datetime = day + "/" + month + "/" + year + " " + hour + ":" + minute

    return datetime;

}

用法:这就是我如何使用上面的功能

success: function(data) {

    if (data.d[0]) {
        $.each(data.d, function(index, data) {

            $("body").append(HumanDate(data.from) + '<br />');

        });
    } else {

当前输出:这是我目前得到的输出,注意缺少的 0

2/7/2013 9:0
15/7/2013 9:30
15/10/2013 10:0
15/11/2013 10:30

预期输出:这是我想要的输出,注意额外的 0

02/07/2013 09:00
15/07/2013 09:30
15/10/2013 10:00
15/11/2013 10:30

问题:

如何获取格式化为预期输出示例的日期和时间?

4

3 回答 3

4

如果你不使用图书馆,那么你必须做一些工作,那就是你必须把"0"自己。

而不是简单地连接day,你需要连接

(day<10 ? '0'+day : day)

其他领域也是如此。

但请注意,有很好的 javascript 库填补了这种空白。我个人使用datejs进行日期操作。

于 2013-08-01T14:30:45.097 回答
2

我建议为这种事情使用一个库——像Moment.js这样的东西可以完美地完成这项工作(并为您提供更多的功能,例如日期加/减交易)。

使用 moment.js,您的代码可能如下所示:

function HumanDate(date) {
    return moment(date).format('MM/DD/YYYY HH:mm');
}

用法示例:

alert(HumanDate("\/Date(1373875200000)\/"));
//alerts "07/15/2013 09:00"

希望有帮助。

于 2013-08-01T14:43:19.160 回答
1

您也可以尝试moment.js。用于格式化日期的 6.5kb 库

var m = moment( new Date() );
m.format( "DD/MM/YYYY HH:mm");
于 2013-08-01T14:41:16.267 回答