数据和时间缺少前导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");