如何格式化这种日期时间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的处理是弱充其量所以有几个到大者可供选择,但由于显而易见的原因,我倾向于喜欢我自己:

DP_DateExtensions

解析功能将让你从一个JS日期任何预定义的字符串和Format函数都会吐出你需要的任何东西。