我需要将10/9/2014
格式的日期传递给我们的API,但我无法在IE中使用toLocaleDateString
,因为它将IEt_code转换为?10?/?9?/?2014
,因为IE喜欢对事物进行不同的编码。是否有另一种简单的方法可以将日期转换成在所有浏览器中的API都干净的日期格式?
最佳答案
我也遇到过这种行为。当您使用toLocaleDateString
时,IE11(完全有信心它只会在IE11中开始发生)正在放入Unicode字符\ u200E(从左至右标记)。我认为这是一个错误和不良行为,因此,我在Microsoft Connect上提交了票证(不确定他们是否认为相同)。当前票证仍处于 Activity 状态。请对其也添加一个repro,希望Microsoft能够处理它并使其表现出预期的效果。可以找到门票here
存在以下临时解决方法
datevar.toLocaleDateString().replace(/[\u200E]/g, "")
这应该清理您的LocaleDateString并使其表现正常
有一个相关的SO问题here,它指示主要问题是我们期望从
toLocaleDateString
返回的字符串可以解析回日期。这不是预期的。 IMO,我认为应该是这样,IE11似乎是个奇怪的问题(其他浏览器不这样做)关于javascript - IE不喜欢API中的toLocaleDateString(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26288485/