我从我的数据库收到了我的日期时间,它返回了这种格式
2013-03-12T22:15:40+08:00
这种格式是什么?什么是T和+代表?
我想把时间显示在:
12 Mar 2012 02:15:40 UTC
我想根据浏览器中设置的时区显示此时间。因此,我应该在Javascript中格式化,但不在后端格式化。我怎样才能在JS中实现这一点?
答案 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对日期的处理力度最弱,所以有几种可供选择,但由于显而易见的原因,我倾向于喜欢自己的:
Parse函数将从任何预定义的字符串中获取JS日期,并且Format函数将吐出您需要的任何内容。