我需要将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/

10-09 15:31