1

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

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

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

我想将我的时间显示为:

12 Mar 2012 02:15:40 UTC

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

4

3 回答 3

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';
};
于 2013-03-12T15:02:01.727 回答
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小时。

于 2013-03-12T15:05:15.710 回答
1

具体细节在上面的答案中 - 如果这就是你所做的一切,那么它似乎对你很有帮助。如果您要进行更多的日期操作,那么您可能需要查看日期操作库。JavaScript 对日期的处理充其量是很弱的,所以有几个很好的可供选择,但出于显而易见的原因,我倾向于喜欢我自己的:

DP_DateExtensions

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

于 2013-03-12T15:37:18.407 回答