数据和时间缺少前导0

时间:2013-08-01 14:28:40

标签: javascript jquery json datetime

我有一个运行良好的函数,用于从以json格式返回的webservice转换日期。 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

问题:

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

3 个答案:

答案 0 :(得分:4)

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

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

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

和其他领域相同。

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

答案 1 :(得分: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"

希望有所帮助。

答案 2 :(得分:1)

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

var m = moment( new Date() );
m.format( "DD/MM/YYYY HH:mm");