如何格式化这种日期时间2013-03-12T22:15:40 + 08:00到“2012年3月12日02:15:40 UTC”?
问题描述:
我收到了日期时间从我的数据库,该数据库返回这样格式如何格式化这种日期时间2013-03-12T22:15:40 + 08:00到“2012年3月12日02:15:40 UTC”?
2013-03-12T22:15:40+08:00
这是什么格式? T和+代表什么?
我想我的显示时间为:
12 Mar 2012 02:15:40 UTC
我想显示基于浏览器设置的时区这个时候。因此,我应该用Javascript来格式化,而不是在后端。我如何在JS中实现这一点? “T”代表“时间”;
答
“T”表示“时间”; “+”(或“ - ”)代表UTC偏移量。如果你想你所指定的格式
> new Date('2013-03-12T22:15:40+08:00');
Date {Tue Mar 12 2013 14:15:40 GMT+0000 (GMT Standard Time)}
因此,:
var formatDate = function(d) {
var date = new Date(d);
return date.getUTCDate() + ' ' +
['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'][date.getUTCMonth()] + ' ' +
date.getUTCFullYear() + ' ' +
date.getUTCHours() + ':' +
date.getUTCMinutes() + ':' +
date.getUTCSeconds() + ' UTC';
};
答
function toUTC(datestring) {
var date = new Date(datestring);
var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
return date.getUTCDate() + " " +
months[date.getUTCMonth()] + " " +
date.getUTCFullYear() + " " +
date.getUTCHours() + ":" +
date.getUTCMinutes() + ":" +
date.getUTCSeconds() + " UTC";
}
console.log(toUTC("2013-03-12T22:15:40+08:00"));
给出12 Mar 2013 14:15:40 UTC
浏览器的JavaScript解析其实这种格式的罚款。我想UTC时间应该是14小时而不是02小时。
答
具体是在上面的答案 - 如果这是你所做的一切,似乎它会为你服务。如果你打算做更多的日期操作,那么你可能想看看日期操作库。日期的的JavaScript的处理是弱充其量所以有几个到大者可供选择,但由于显而易见的原因,我倾向于喜欢我自己:
解析功能将让你从一个JS日期任何预定义的字符串和Format函数都会吐出你需要的任何东西。