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
它在chrome和firefox中运作良好,但它没有在Internet Explorer 11中转换为datetime请注意,在日期和时间之间
答案 0 :(得分:1)
假设这是C#(看起来像是)并且它在服务器上运行(实际上不在浏览器中):您应该检查System.Globalization.CultureInfo.CurrentCulture
的值是什么。查看来自IE与您的其他浏览器之间的请求是否不同。 DateTime.TryParse(string, out DateTime)
使用此值来帮助解析字符串。
例如,您提供的日期:"28/04/2015 07:59:00"
会导致TryParse
如果当前文化为false
则返回en-US
,但如果当前文化为{{1}然后它将返回es-MX
。
我不确定为什么我的脑海中的浏览器会有所不同,但它至少是一个开始寻找的地方。
答案 1 :(得分:0)
我遇到了类似的问题,这个问题是javaScript方法
IE11中的toLocaleDateString()
返回带有一些RTL字符的字符串!导致数据无效,并且这些字符不可见。
使用正则表达式的简单修补程序
toLocaleDateString().replace(/[^A-Za-z 0-9 \.,\?""!@#\$%\^&\*\(\)-_=\+;:<>\/\\\|\}\{\[\]`~]*/g, '')
我在后面的C#
上尝试了相同的正则表达式,但是没有用,但是,我不想花更多的时间在上面,所以我只应用了前端解决方案。