IE11中的ToLocaleDateString()更改在IE 11中,我使用ToLocaleDateString()获得了有趣的结果。返回的字符串在浏览器中看起来很好,例如“1/28/2014 11:00:46 AM”,但是如果我将该值复制并粘贴到纯文本编辑器中,它看起来像这样:“?1?/? 28?/?2014?11?:?00?:?46 ?? AM“。有趣的是,如果我将文本粘贴到Microsoft产品中,它看起来很好......问题是,如果您尝试以编程方式使用该值来创建日期,则它无效。您可以通过在IE11中打开一个控制台并创建一个新日期,使用ToLocaleDateString()对它进行测试,然后尝试使用生成的字符串以javascript或您选择的语言创建一个新日期(我'我在这里使用ASP.NET ...)。我做错了什么,或者是否有其他方式我应该与javascript日期进行交互?我怎样才能摆脱那些时髦的符号?编辑: 感谢下面的评论,我能够弄清楚未显示的字符是什么,它们是从左到右的标记。根据编辑器我将值粘贴到编辑器设置使用的编码和编码,文本将以不同的方式显示:有时带“?”,有时没有。
3 回答
达令说
TA贡献1821条经验 获得超6个赞
我修正了以下内容replace(/[^ -~]/g,'')
,如下所示
(new Date("7/15/2014").toLocaleString().replace(/[^ -~]/g,'')
汪汪一只猫
TA贡献1898条经验 获得超8个赞
为了完整,答案形式:
在我的系统,IE 11的日期对象的方法toLocaleDateString
的结果"7/6/2014"
,当在其被表示为下面的字节控制台运行:
00000000 22 e2 80 8e 37 e2 80 8e 2f e2 80 8e 36 e2 80 8e |“â.Z7â.Z/âZ6âZ|00000010 2f e2 80 8e 32 30 31 34 22 | /Z2014“|
非printables是0xe2 0x80 0x8e
Unicode Code Point U + 200E的UTF-8表示。正如上面的评论所说的那样,左至右标记。
这个JSFiddle似乎没有使用返回的值toLocaleDateString()
来回到日期。至少在我的IE 11.0.9600.17239中使用更新版本11.0.11(KB2976627)。所以也许只有控制台添加额外的字符?
添加回答
举报
0/150
提交
取消