我从我的数据库中收到了我的日期时间,它以这种格式返回
2013-03-12T22:15:40+08:00
这是什么格式?T 和 + 代表什么?
我想将我的时间显示为:
12 Mar 2012 02:15:40 UTC
我想根据浏览器中设置的时区显示这个时间。因此,我应该用 Javascript 格式化它,而不是在后端。我怎样才能在 JS 中实现这一点?
我从我的数据库中收到了我的日期时间,它以这种格式返回
2013-03-12T22:15:40+08:00
这是什么格式?T 和 + 代表什么?
我想将我的时间显示为:
12 Mar 2012 02:15:40 UTC
我想根据浏览器中设置的时区显示这个时间。因此,我应该用 Javascript 格式化它,而不是在后端。我怎样才能在 JS 中实现这一点?
“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';
};
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小时。
具体细节在上面的答案中 - 如果这就是你所做的一切,那么它似乎对你很有帮助。如果您要进行更多的日期操作,那么您可能需要查看日期操作库。JavaScript 对日期的处理充其量是很弱的,所以有几个很好的可供选择,但出于显而易见的原因,我倾向于喜欢我自己的:
Parse 函数将从任何预定义的字符串中为您获取 JS 日期,而 Format 函数将输出您需要的任何内容。