猿问

IE11中的ToLocaleDateString()更改

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日期进行交互?我怎样才能摆脱那些时髦的符号?

编辑: 感谢下面的评论,我能够弄清楚未显示的字符是什么,它们是从左到右的标记。根据编辑器我将值粘贴到编辑器设置使用的编码和编码,文本将以不同的方式显示:有时带“?”,有时没有。


杨魅力
浏览 1077回答 3
3回答

达令说

我修正了以下内容replace(/[^ -~]/g,''),如下所示(new Date("7/15/2014").toLocaleString().replace(/[^ -~]/g,'')

汪汪一只猫

为了完整,答案形式:在我的系统,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 0x8eUnicode Code Point U + 200E的UTF-8表示。正如上面的评论所说的那样,左至右标记。这个JSFiddle似乎没有使用返回的值toLocaleDateString()来回到日期。至少在我的IE 11.0.9600.17239中使用更新版本11.0.11(KB2976627)。所以也许只有控制台添加额外的字符?
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答