为了账号安全,请及时绑定邮箱和手机立即绑定

IE11中的ToLocaleDateString()更改

IE11中的ToLocaleDateString()更改

杨魅力 2019-07-30 17:25:18
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,'')


查看完整回答
反对 回复 2019-07-30
?
汪汪一只猫

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 0x8eUnicode Code Point U + 200E的UTF-8表示。正如上面的评论所说的那样,左至右标记。

这个JSFiddle似乎没有使用返回的值toLocaleDateString()来回到日期。至少在我的IE 11.0.9600.17239中使用更新版本11.0.11(KB2976627)。所以也许只有控制台添加额外的字符?


查看完整回答
反对 回复 2019-07-30
  • 3 回答
  • 0 关注
  • 1076 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信