IE不喜欢API中的LocaleDateString()

时间:2014-10-09 21:50:15

标签: javascript

我需要将10/9/2014格式的日期传递给我们的API,但我不能在IE中使用toLocaleDateString,因为它会将其转换为?10?/?9?/?2014,因为IE喜欢以不同的方式编码。是否有另一种简单的方法可以在所有浏览器中使用这种格式的日期来清除API?

1 个答案:

答案 0 :(得分:2)

我也遇到过这种行为。 IE11(相当有信心它只在IE11中开始发生)在你使用toLocaleDateString时输入了Unicode字符\ u200E(从左到右标记)。我会认为这是一个错误和不良行为,因此我在Microsoft Connect上提交了一张票(不确定他们是否认为它是相同的)。目前票证仍然有效。请在其上添加一个repro,希望微软能够处理它并让它按照我们的预期行事。可以找到票证here

以下

有一个临时解决方法
datevar.toLocaleDateString().replace(/[\u200E]/g, "")

这应该清理你的LocaleDateString并使其表现

有一个相关的SO问题here,表明主要问题是我们希望从toLocaleDateString返回的字符串可以解析回日期。这不是意图。 IMO我认为它应该是,IE11似乎是奇怪的(其他浏览器不做)