当前位置: 首页 > 面试题库 >

IE8和IE9 +上日期的toJSON()结果不同

羊时铭
2023-03-14
问题内容

我正在执行从Date到字符串的转换,然后再转换为在sessionStorage中使用。所以我首先这样做:

sessionStorage.currentDate = myDate.toJSON();

然后我这样做:

if (sessionStorage.currentDate ) {
    myDate = new Date(sessionStorage.currentDate);
}

问题在于, IE9 +*
中的myDate.toJSON()函数将返回,但在IE8中,它将返回缺少结尾的小数部分。事实是,在IE8中,随后的重新转换均无法转换为日期(结果为)


*"2013-05-06T22:00:00.000Z"``"2013-05-06T22:00:00Z"``new Date(sessionStorage.currentDate)``NaN

知道为什么会发生这种情况以及如何使此代码适用于IE8 +吗?

更新:

我尝试在调试中替换字符串,结果发现这两个字符串都不起作用。因此,实际上似乎是new Date(sessionStorage.currentDate)无法识别格式的问题(以UTC为单位)


问题答案:

在ES5之前,日期的解析完全取决于实现。IE 8(及更低版本)不会解析ES5中指定的ISO 8601格式,因此您可以自己解析:

// parse ISO format date like 2013-05-06T22:00:00.000Z
function dateFromISO(s) {
  s = s.split(/\D/);
  return new Date(Date.UTC(s[0], --s[1]||'', s[2]||'', s[3]||'', s[4]||'', s[5]||'', s[6]||''))
}

假设字符串为UTC。



 类似资料:
  • 问题内容: 这是我经历和解决的一系列跨浏览器差异的最后一个问题。 基本上,在Internet Explorer 8和Internet Explorer 9中,样式不会应用于菜单。按下时应变暗。请让我知道为什么以及如何解决。提前致谢。 问题答案: :active伪类在用户激活元素时适用。例如,在用户按下鼠标按钮并释放的时间之间。请参阅W3 但是,您正在将选择器应用于元素, 该 元素 不能处于活动状态

  • 问题内容: 当我运行此代码时: 我在Eclipse的JUnit运行程序中得到以下结果: 这导致从命令行Maven: 如您所见,时间有所不同。 (同一台计算机,相同的Java版本,可能相隔30秒)。为什么? [编辑] 时区也不同。从Maven 启动和从Eclipse 启动时,为什么要使用Java ? 或换一种说法:如何强制Java使用两者? 问题答案: 要指定默认时区,您可以设置系统属性。您可以通过

  • 我有一种字体在IE8和IE9以及所有其他浏览器中都能正常工作,但第二种字体只在IE9和其他浏览器中工作。在IE8中,我得到了一个错误: “CSS3111:@font-face遇到未知错误。” 我一直在四处看书,尝试了很多事情,但都没有运气。 我的代码是: 我试过用几个不同的生成器多次重新生成eot,玩过CSS,玩过头,玩过域,等等,但是看起来它们都很好。如前所述,相同的代码在相同的,只是指向不同的

  • 问题内容: 我对来自JQuery Ajax请求的Internet Explorer缓存结果存在严重问题。 我的网页上有标题,每次用户导航到新页面时标题都会更新。页面加载后,我就执行此操作 它只是将标头信息注入页面。您可以通过访问www.wikipediamaze.com进行检查,然后登录并开始创建新拼图。 在我测试过的每种浏览器(谷歌浏览器,Firefox,Safari,Internet Expl

  • 问题内容: 我有这个mysql表: 等等。我可以简单地获取结果并通过以下代码按日期将其排序: 但是如何显示按特定日期排序的表中的元素,如下所示: 等等。谢谢! 问题答案: 这是PHP代码: 输出: 汤姆 麦可 2012-11-17 埃里克 约翰 2012-11-16 拉里 凯特 请注意,虽然此代码将行按一列“分组”,但可以轻松地扩展为按多列对行进行分组。留作练习。

  • 问题内容: 我从JavaScript进行$ getJSON调用得到以下结果。如何在JavaScript中将start属性转换为正确的日期? [{“ id”:1,“ start”:“ / Date(1238540400000)/”},{“ id”:2,“ start”:“ / Date(1238626800000)/”}] 谢谢! 问题答案: 您需要从字符串中提取数字,并将其传递给Date : 这些