数据和时间缺少前导0

我有一个运行良好的函数,用于转换以json格式返回的web服务的日期。 Web服务以下列格式提供日期:

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

\/Date(1373875200000)\/ 

当前function:这是我当前的function

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

用法:这是我如何使用上面的function

 success: function(data) { if (data.d[0]) { $.each(data.d, function(index, data) { $("body").append(HumanDate(data.from) + '
'); }); } 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 

题:

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

我建议使用一个库来做这种事情 – 像Moment.js这样的东西可以完美地完成这项任务(并为你提供更多的function,例如日期加法/减法到讨价还价中)。

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

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

用法示例:

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

希望有所帮助。

如果你不使用库,那么你必须做一些工作,那就是你必须自己设置"0"

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

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

和其他领域一样。

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

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

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