我从graph.facebook API获取了一个日期字符串"2011-11-24T09:00:27 + 0000".
我跑的时候
var timestamp = Date.parse(facebookDate);
Run Code Online (Sandbox Code Playgroud)
在铬.我得到一个与日期有关的时间戳!完善!
但在其他主流浏览器中...我得到"NaN"!!! ?
当然所有这些浏览器都使用相同的JavaScript解析功能吗?
任何人都可以解释为什么相同的javascript函数给出不同的结果?
任何人都可以告诉我如何解决这个问题......
提前致谢
亚历克斯
mpl*_*jan 10
这是对Firefox和IE/Safari的修复(在JavaScript的帮助下:哪些浏览器支持使用Date.parse解析ISO-8601日期字符串 ):
var noOffset = function(s) {
var day= s.slice(0,-5).split(/\D/).map(function(itm){
return parseInt(itm, 10) || 0;
});
day[1]-= 1;
day= new Date(Date.UTC.apply(Date, day));
var offsetString = s.slice(-5)
var offset = parseInt(offsetString,10)/100;
if (offsetString.slice(0,1)=="+") offset*=-1;
day.setHours(day.getHours()+offset);
return day.getTime();
}
Run Code Online (Sandbox Code Playgroud)
来自MDN
JavaScript 1.8.5注意事项
现在也可以解析ISO 8601格式的日期字符串的子集.
或者,日期/时间字符串可以是ISO 8601格式.从JavaScript 1.8.5/Firefox 4开始,支持ISO 8601的子集.例如,可以传递和解析"2011-10-10"(仅限日期)或"2011-10-10T14:48:00(日期和时间).尚未支持ISO日期中的时区,例如"2011- 10-10T14:48:00 + 0200"(带时区)尚未给出预期的结果.
| 归档时间: |
|
| 查看次数: |
7583 次 |
| 最近记录: |