-1
public JsonResult TimeValidation(string pickUp, string delivery)   
{

    var errorMessage = string.Empty;
    var dateTime = DateTime.MinValue;

    if (!DateTime.TryParse(pickUp, out dateTime))
        errorMessage = "Invalid date";

     if (!DateTime.TryParse(delivery, out dateTime))
        errorMessage = "Invalid date";
}
‎4‎/‎29‎/‎2015‎ ‎3‎:‎30‎:‎00‎ ‎PM pickup from ie
4‎/‎30‎/‎2015‎ ‎12‎:‎00‎:‎00‎ ‎AM delivery from ie
4/29/2015, 3:30:00 PM pickup from  firefox
4/30/2015, 12:00:00 AM delivery from firefox  

‎</p>

它在 chrome 和 firefox 中运行良好,但在 Internet Explorer 11 中没有转换为日期时间,请注意日期和时间之间

4

2 回答 2

1

假设这是 C#(看起来是这样)并且它在服务器上运行(实际上不是在浏览器中):您应该检查一下它的值System.Globalization.CultureInfo.CurrentCulture是什么。查看来自 IE 的请求与来自其他浏览器之一的请求是否不同。DateTime.TryParse(string, out DateTime)使用此值来帮助解析字符串。

例如,您提供的日期:如果当前文化是"28/04/2015 07:59:00"将导致TryParse返回,但如果当前文化是,那么它将返回。falseen-USes-MXtrue

我不确定为什么在我脑海中的浏览器之间会有所不同,但它至少是一个开始寻找的地方。

于 2015-04-28T17:09:41.527 回答
0

我遇到了类似的问题,问题是 toLocaleDateString()IE11 中的 javaScript 方法返回带有一些 RTL 字符的字符串!这会导致无效数据并且这些字符不可见。

使用正则表达式的简单修复

toLocaleDateString().replace(/[^A-Za-z 0-9 \.,\?""!@#\$%\^&\*\(\)-_=\+;:<>\/\\\|\}\{\[\]`~]*/g, '')

我在后面尝试了相同的正则表达式,C#但它不起作用,但是,我不想花更多时间在这上面,所以我只是应用了前端解决方案。

更多细节,来源

于 2019-05-16T01:55:16.133 回答