我有一个运行良好的函数,用于从以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
问题:
如何将日期和时间格式化为预期输出示例?
答案 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");