如何格式化这种日期时间2013-03-12T22:15:40 + 08:00到“2012年3月12日02:15:40 UTC”?

时间:2013-03-12 14:55:53

标签: javascript datetime

我从我的数据库收到了我的日期时间,它返回了这种格式

2013-03-12T22:15:40+08:00

这种格式是什么?什么是T和+代表?

我想把时间显示在:

12 Mar 2012 02:15:40 UTC

我想根据浏览器中设置的时区显示此时间。因此,我应该在Javascript中格式化,但不在后端格式化。我怎样才能在JS中实现这一点?

3 个答案:

答案 0 :(得分:1)

“T”代表“时间”; “+”(或“ - ”)表示UTC偏移量。 JavaScript实际上在我的浏览器中解析了这种格式:

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

答案 1 :(得分:1)

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。我想UTC时间应该是14小时而不是02小时。

答案 2 :(得分:1)

具体内容在上面的答案中 - 如果这就是你正在做的事情,或者看起来它会很好。如果您要进行更多日期操作,那么您可能需要查看日期操作库。 JavaScript对日期的处理力度最弱,所以有几种可供选择,但由于显而易见的原因,我倾向于喜欢自己的:

DP_DateExtensions

Parse函数将从任何预定义的字符串中获取JS日期,并且Format函数将吐出您需要的任何内容。